我注意到当你这么做的时候
mapply(function(x) { x }, c(as.Date('2014-1-1'), as.Date('2014-2-2')))R自动将日期向量转换为数字向量。有什么方法可以禁用这种行为吗?
我知道你可以用as.Date(.,原点=‘1970-1-1’)来包装结果,但是我只能想象这里必须有一个更好的解决方案。
发布于 2014-12-17 22:39:22
这与mapply通过simplify2array简化其结果的方式有关。
x <- list(as.Date('2014-1-1'), as.Date('2014-2-2'))
simplify2array(x, higher = FALSE)
# [1] 16071 16103您可以关闭简化,然后手动减少列表。
do.call(c, mapply(I, x, SIMPLIFY = FALSE))
# [1] "2014-01-01" "2014-02-02"或者您可以使用Map和Reduce (或do.call)
Reduce(c, Map(I, x))
# [1] "2014-01-01" "2014-02-02"Map基本上是mapply(..., SIMPLIFY = FALSE),我使用I代替function(x) { x },因为它只是按原样返回输入。
https://stackoverflow.com/questions/27536119
复制相似问题