似乎我从来没有能够正确使用lapply
,而我今天决定结束这一点。我确定我的问题是基本的,但我已经非常仔细地搜索过,以及参考文档,并且无法找到答案。
我有4个包含多列的数据框,其中一个包含当前存储为因子的日期和时间信息(日期时间)(数千个级别的类型" 2016-01-01 00:00:00")
我可以使用以下方法轻松更改单个数据帧的格式:
df$Datetime<-as.POSIXct(strptime(as.character(df$Datetime), "%Y-%m-%d %H:%M:%S", tz="America/Edmonton"))
这是我尝试使用lapply
同时对所有数据帧执行相同操作的尝试。
Datasets<-list(Data2017_1h, Data2016_1h, Data2017_15min, Data2016_15min)
Datasets<-lapply(Datasets, function(x){
as.POSIXct(strptime(as.character(x$Datetime), "%Y-%m-%d %H:%M:%S", tz="America/Edmonton"))
})
输出是一个长度为4的列表,每个元素的类型为&#34; Double(S3:POSIXct,POSIXt)&#34;。我松开了所有其他变量(最初有16列),如果我尝试查看一个列表中的一个元素,它就会显示为Double,而不是POSIXct。
我很困惑,所以我很感激任何见解。对不起,我没有一个可重复的例子,我的学习曲线并不完全。
答案 0 :(得分:0)
由于没有可复制的数据,因此不确定如何完全回答您的问题。但是您可以尝试:
lapply(Datasets, function(x) as.POSIXct(x$Datetime, format = "%Y-%m-%d %H:%M:%S", tz="America/Edmonton")
这没有指定类类型就可以使用。