6
如何防止ifelse()将Date对象转换为数字对象
我正在使用该函数ifelse()来操纵日期向量。我期望结果是class Date,并且很惊讶地得到了numericvector。这是一个例子: dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04', '2011-01-05')) dates <- ifelse(dates == '2011-01-01', dates - 1, dates) str(dates) 这尤其令人惊讶,因为在整个矢量上执行该操作会返回一个Date对象。 dates <- as.Date(c('2011-01-01', '2011-01-02', '2011-01-03', '2011-01-04','2011-01-05')) dates <- dates - 1 str(dates) 我是否应该使用其他函数对Date向量进行运算?如果是这样,什么功能?如果没有,如何强制ifelse返回与输入类型相同的向量? 帮助页面的ifelse表示这是一项功能,而不是错误,但是我仍在努力寻找对我发现令人惊讶的行为的解释。
161
r
datetime
if-statement