Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
计算两个日期之间的差异(R)_R_Date_Lubridate_Subtraction - Fatal编程技术网

计算两个日期之间的差异(R)

计算两个日期之间的差异(R),r,date,lubridate,subtraction,R,Date,Lubridate,Subtraction,我正在尝试在R中计算两个日期之间的差异。通常,我可以在MS Excel中进行此操作,但我想尝试在R中进行此操作并学习一些新的内容。日期的格式为:年-月-日期,格式为“因子”: 然后,我尝试使用“lubdridate”库: 然而,这也不起作用 有人能告诉我我做错了什么吗 谢谢您需要为日期输入字符。此外,您使用的是%Y/%m/%d,并且在d数据中定义为Y-m-d,以便日期转换可以正常工作: d <- data.frame ( "day_a" = c("2

我正在尝试在R中计算两个日期之间的差异。通常,我可以在MS Excel中进行此操作,但我想尝试在R中进行此操作并学习一些新的内容。日期的格式为:年-月-日期,格式为“因子”:

然后,我尝试使用“lubdridate”库:

然而,这也不起作用

有人能告诉我我做错了什么吗


谢谢

您需要为日期输入字符。此外,您使用的是
%Y/%m/%d
,并且在
d
数据中定义为
Y-m-d
,以便日期转换可以正常工作:

d <- data.frame (
  
  "day_a" = c("2010-12-25", "2020-10-31"),
  "day_b" = c("2011-12-24", "2021-01-01")
  
)

d$day_a = as.factor(d$day_a)
d$day_b = as.factor(d$day_b)

d$day_1 = as.Date(as.character(d$day_a))
d$day_2 = as.Date(as.character(d$day_b))

d$diff = d$day_1 - d$day_2

您需要为日期输入字符。此外,您使用的是
%Y/%m/%d
,并且在
d
数据中定义为
Y-m-d
,以便日期转换可以正常工作:

d <- data.frame (
  
  "day_a" = c("2010-12-25", "2020-10-31"),
  "day_b" = c("2011-12-24", "2021-01-01")
  
)

d$day_a = as.factor(d$day_a)
d$day_b = as.factor(d$day_b)

d$day_1 = as.Date(as.character(d$day_a))
d$day_2 = as.Date(as.character(d$day_b))

d$diff = d$day_1 - d$day_2

您可以使用
日期
对象的简单减法,并将结果转换为数字:

d <- data.frame (
  day_a = c("2010-12-25", "2020-10-31"),
  day_b = c("2011-12-24", "2021-01-01")
)

d$timediff <- as.numeric(as.Date(d$day_b) - as.Date(d$day_a))

       day_a      day_b timediff
1 2010-12-25 2011-12-24      364
2 2020-10-31 2021-01-01       62

d您可以使用
date
对象的简单减法,并将结果转换为数字:

d <- data.frame (
  day_a = c("2010-12-25", "2020-10-31"),
  day_b = c("2011-12-24", "2021-01-01")
)

d$timediff <- as.numeric(as.Date(d$day_b) - as.Date(d$day_a))

       day_a      day_b timediff
1 2010-12-25 2011-12-24      364
2 2020-10-31 2021-01-01       62

d谢谢您的回复!假设我想删除“diff”列中的“days”。。。我可以用这个吗?d$new\u col=as.numeric(d$diff)@Noob亲爱的,是的,你是对的!如果您想要正值,请使用
d$new\u col=abs(as.numeric(d$diff))
谢谢您的回复!假设我想删除“diff”列中的“days”。。。我可以用这个吗?d$new\u col=as.numeric(d$diff)@Noob亲爱的,是的,你是对的!如果您想要正值,请使用
d$new\u col=abs(如.numeric(d$diff))
d
       day_a      day_b      day_1      day_2      diff
1 2010-12-25 2011-12-24 2010-12-25 2011-12-24 -364 days
2 2020-10-31 2021-01-01 2020-10-31 2021-01-01  -62 days
d <- data.frame (
  day_a = c("2010-12-25", "2020-10-31"),
  day_b = c("2011-12-24", "2021-01-01")
)

d$timediff <- as.numeric(as.Date(d$day_b) - as.Date(d$day_a))

       day_a      day_b timediff
1 2010-12-25 2011-12-24      364
2 2020-10-31 2021-01-01       62