R 使用as.Date(x)-as.Date(y)后,有;“天”;在数字之后
希望这是一个简单的问题: 我在我的数据框中创建了一个列,它以两个日期列的日期为基准 我得到了正确的结果,但是当我再次调用这个数据框时,在这个新列中,我得到了数字后面的“天”R 使用as.Date(x)-as.Date(y)后,有;“天”;在数字之后,r,R,希望这是一个简单的问题: 我在我的数据框中创建了一个列,它以两个日期列的日期为基准 我得到了正确的结果,但是当我再次调用这个数据框时,在这个新列中,我得到了数字后面的“天” my code is: temp <- temp %>% mutate(AGEMOS = as.numeric(as.Date(temp$INTERVIEWDATE,"%m/%d/%Y")- as.Date(temp$BDAY,"%m/%d/%Y")) / 30.475)
my code is:
temp <- temp %>%
mutate(AGEMOS = as.numeric(as.Date(temp$INTERVIEWDATE,"%m/%d/%Y")-
as.Date(temp$BDAY,"%m/%d/%Y")) / 30.475)
我的代码是:
温度%
变异(AGEMOS=as.numeric(as.Date)(temp$INTERVIEWDATE,“%m/%d/%Y”)-
截止日期(临时$B日,“%m/%d/%Y”)/30.475)
而且,为了再次迭代,AGEMOS现在在每个数值后都有“天”
有没有办法摆脱这种情况或将其改为几年
谢谢您可以将函数
用作带参数单位的.numeric
:
as.numeric(as.Date("2017-08-20")-as.Date("2017-09-03"), units = "days")
您可以将函数用作参数单位的.numeric
:
as.numeric(as.Date("2017-08-20")-as.Date("2017-09-03"), units = "days")
您还可以使用difftime
并指定您感兴趣的单位。例如difftime(temp$BDAY,temp$INTERVIEWDATE,units=“days”
,只要参数是日期类。您还可以使用difftime
并指定您感兴趣的单位。例如difftime(temp$BDAY,temp$INTERVIEWDATE,units=“days”
只要它们的参数是一个date
类。要理解这个行为,你需要认识到减去两个日期并不会返回一个数值向量。它返回一个classdifftime
x <- as.Date("2017-05-11")
y <- as.Date("2017-01-23")
z <- x - y
class(x) # Date
class(y) # Date
class(z) # difftime
我建议使用稍微安全一点的方法来计算时差
as.numeric(difftime(x, y, units = "days"))
实际上,我建议指定units
参数;根据对象的接近程度,R中的单位自动选择可能并不总是相同的(对于日期/时间对象的POSIXct
变量,这种情况更可能发生。通过指定要使用的单位,可以避免混淆。要理解这种行为,您需要认识到减去两个日期不会返回数值向量。它返回类difftime
x <- as.Date("2017-05-11")
y <- as.Date("2017-01-23")
z <- x - y
class(x) # Date
class(y) # Date
class(z) # difftime
我建议使用稍微安全一点的方法来计算时差
as.numeric(difftime(x, y, units = "days"))
实际上,我建议指定units
参数;根据对象的接近程度,R中的单位自动选择可能并不总是相同的(对于POSIXct
变量,即日期/时间对象,这更可能是正确的。通过指定要使用的单位,可以避免混淆