当我取消列出日期列表时,它会将它们变回数字.这是正常的吗?除了重新申请as.Date之外的任何解决方法?
> dd <- as.Date(c("2013-01-01", "2013-02-01", "2013-03-01"))
> class(dd)
[1] "Date"
> unlist(dd)
[1] "2013-01-01" "2013-02-01" "2013-03-01"
> list(dd)
[[1]]
[1] "2013-01-01" "2013-02-01" "2013-03-01"
> unlist(list(dd))
[1] 15706 15737 15765
Run Code Online (Sandbox Code Playgroud)
这是一个错误吗?
Rom*_*rik 80
do.call使用列表"做某事"是一个方便的功能.在我们的例子中,使用连接它c.从列表到单个大数据框架cbind或者rbinddata.frames 并不罕见.
我们在这里做的实际上是连接dd列表的元素.这类似于c(dd[[1]], dd[[2]]).请注意,c可以作为函数或字符提供.
> dd <- list(dd, dd)
> (d <- do.call("c", dd))
[1] "2013-01-01" "2013-02-01" "2013-03-01" "2013-01-01" "2013-02-01" "2013-03-01"
> class(d) # proof that class is still Date
[1] "Date"
Run Code Online (Sandbox Code Playgroud)
或者使用purrr将日期列表展平为向量保留类型:
list(as.Date(c("2013-01-01", "2013-02-01", "2013-03-01"))) %>% purrr::reduce(c)
Run Code Online (Sandbox Code Playgroud)
结果是
[1] "2013-01-01" "2013-02-01" "2013-03-01"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8221 次 |
| 最近记录: |