> f = function(x) as.Date(as.character(x), format='%Y%m%d')
> f(20110606)
[1] "2011-06-06"
> sapply(20110606, f)
[1] 15131
Run Code Online (Sandbox Code Playgroud)
为什么2个返回值不一样.我需要将这个函数应用于一个很长的日期向量,但我没有得到sapply()的日期!
您用于创建的功能f已经过矢量化.sapply除非您在冗余部门工作,否则无需使用.
> f <- function(x) as.Date(as.character(x), format='%Y%m%d')
> d <- 20110606 + 0:10
> f(d)
[1] "2011-06-06" "2011-06-07" "2011-06-08" "2011-06-09"
[5] "2011-06-10" "2011-06-11" "2011-06-12" "2011-06-13"
[9] "2011-06-14" "2011-06-15" "2011-06-16"
Run Code Online (Sandbox Code Playgroud)
> lapply(20110606, f)
[[1]]
[1] "2011-06-06"
> unlist(lapply(20110606, f))
[1] 15131
Run Code Online (Sandbox Code Playgroud)
sapply lally lally并且这样做会使日期失效
> unclass(lapply(20110606, f)[[1]])
[1] 15131
> class(lapply(20110606, f)[[1]])
[1] "Date"
Run Code Online (Sandbox Code Playgroud)
正如@Joshua Ulrich所指出的那样,无需使用应用类型函数
d <- 20110606 + 0:10
do.call("c",lapply(d, f))
Run Code Online (Sandbox Code Playgroud)
将是一种"取消"日期的可能方式
| 归档时间: |
|
| 查看次数: |
122 次 |
| 最近记录: |