我有一个问题,使用lapply和mapply返回数据。即该mapply/lapply返回列表的列表。如果我“简化”这个呼叫,它会去掉班级信息。mapply和SIMPLIFY,而不是剥离类
例如:
library(lubridate)
addBusDays <- function(d, dd) {
d
}
# start with datframe
dates <- c(ymd('2013-03-04'), ymd('2013-03-07'))
my.df <- data.frame(n=c(1,2), d=dates)
mapply(addBusDays, my.df$d, 1, SIMPLIFY=F)
回报
[[1]]
[1] "2013-03-03 19:00:00 EST"
[[2]]
[1] "2013-03-06 19:00:00 EST"
class(mapply(addBusDays, my.df$d, 1, SIMPLIFY=F)[[1]]
[1] "POSIXct" "POSIXt"
它看起来像它返回一个列表的列表,这是可行的,但我不艾克的解决方案。允许函数简化POSIX类剥离:
mapply(addBusDays, my.df$d, 1, SIMPLIFY=T)
class(mapply(addBusDays, my.df$d, 1, SIMPLIFY=T))
> mapply(addBusDays, my.df$d, 1, SIMPLIFY=T)
[1] 1362355200 1362614400
> class(mapply(addBusDays, my.df$d, 1, SIMPLIFY=T))
[1] "numeric"
这看起来会返回一个列表,但会剥离类信息。任何帮助/想法?
工作工作会有断的加文的建议
library(lubridate)
addBusDays <- function(d, dd) {
d
}
# start with datframe
dates <- c(ymd('2013-03-04'), ymd('2013-03-07'))
my.df <- data.frame(n=c(1,2), d=dates)
my.df$d.2 <- as.POSIXct(mapply(addBusDays, my.df$d, 2, SIMPLIFY=T), origin="1970-01-01")
typeof(my.df$d)
class(my.df$d)
mode(my.df$d)
typeof(my.df$d.2)
class(my.df$d.2)
mode(my.df$d.2)
my.df
回报
> my.df
n d d.2
1 1 2013-03-03 19:00:00 2013-03-04
2 2 2013-03-06 19:00:00 2013-03-07
该技术由1移天 - 这不应该作为函数返回的日期已过这个例子。 ..除此之外,班级等似乎是现货。
我的眼睛在愚弄我 - 我的问题是加载数据框 - 而不是加文的解决方案。
'mapply'被返回一个列表,其中的每个组件都是类“POSIXct”的向量,也从类“POSIXt”继承。 – 2013-03-27 18:04:27
仍然不知道如何应用这个函数并返回一个POSIXct类的列表 - 你能够在这个方向上推动我吗? – akaphenom 2013-03-27 18:08:00
您的愿望是我的命令 - 请参阅我的答案,现在已更新。 – 2013-03-27 18:17:21