我有一个函数,它接受一个Date对象并返回一个.但是,当我使用mapply函数将函数应用于data.frame列时,我遇到了问题:我没有像预期的那样得到Date-objects,而是数字.知道如何将它们转换为Date对象吗?另外,我会对这里发生的事情感兴趣.非常感谢帮助!
最小的例子:
#Define simple function that takes a date-object and returns a date-object
add_day <- function(dat) {return(dat + 1)}
#Set up data.frame with two date-object entries in one column
df <- data.frame(Col_A = c(as.Date("01/01/00", "%m/%d/%y"), as.Date("05/02/11", "%m/%d/%y")))
#That is the desired result: give a date-object to the function, get one back
add_day(df[1, "Col_A"]) #Returns [1] "2000-01-02"
add_day(df[2, "Col_A"]) #Returns [1] "2011-05-03"
#Why does it not work here? What do I get back?
mapply(add_day, df[, "Col_A"]) #Returns [1] 10958 15097; Why? …Run Code Online (Sandbox Code Playgroud) 可能重复:
为什么mapply不返回日期对象?
我得到了以下bizzar问题,当我将一个字符串转换为日期时我没有问题:
as.Date(的Alldays [1])
[1] "3-04-20"
Run Code Online (Sandbox Code Playgroud)
然而,当我使用sapply或lapply时,我得到了一个很大的负数,有谁知道为什么会这样?谢谢!
> (sapply(alldays[1:4], as.Date))
03-04-2012 02-04-2012 30-03-2012 29-03-2012
-718323 -718688 -708492 -708857
Run Code Online (Sandbox Code Playgroud)
大家好,我发现了这个问题,非常感谢你的帮助!