我似乎找不到答案,我尝试了很多事情-我对R还是很陌生。
我在数据集Old Data
中有两个变量
Open Date
-Excel和Closed Date
-POSIXct
,格式:“ 2017-10-11 12:39:37” 我无法让他们为数据集中的每一行减去,转换似乎已关闭
这是我想要做的(没有语法):
Newdata <- Newtime = (Closed Date - Open Date) from Old Data
这是dput(Old Data)
的结果:
structure(list(open_date = c(43018, 43018, 43020, 43027), close_date = c("9/9/2018 12:11:11",
"9/11/2018 13:21:11", "9/1/2018 14:31:41", "9/5/2018 15:44:41"
)), class = "data.frame", row.names = c(NA, -4L))
谢谢!
答案 0 :(得分:1)
您可以使用excel_numeric_to_date
程序包的janitor
函数将数字Excel日期格式转换为Date
,然后使用mdy
程序包的lubridate
函数转换字符字符串输入Date
中。然后,您可以按天计算difftime
天的时间,如下所示:
library(janitor)
library(lubridate)
df <- structure(list(open_date = c(43018, 43018, 43020, 43027),
close_date = c("9/9/2018 12:11:11",
"9/11/2018 13:21:11", "9/1/2018 14:31:41", "9/5/2018 15:44:41"
)), class = "data.frame", row.names = c(NA, -4L))
df$open_date <- excel_numeric_to_date(df$open_date)
df$close_date <- as_date(dmy_hms(df$close_date))
df$new_date_time <- df$close_date - df$open_date
df
输出:
open_date close_date new_date_time
1 2017-10-10 2018-09-09 334 days
2 2017-10-10 2018-11-09 395 days
3 2017-10-12 2018-01-09 89 days
4 2017-10-19 2018-05-09 202 days