似乎我永远无法正确使用lapply
,因此我决定今天结束这一点。我确定我的问题是基本的,但是我已经非常仔细地搜索了SO以及参考文档,但找不到答案。
我有4个数据框,其中有多列,其中之一包含当前存储为因子的日期和时间信息(Datetime)(成千上万个类型为“ 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的列表,每个元素的类型为“ Double(S3:POSIXct,POSIXt)”。我松开了所有其他变量(最初有16列),如果我尝试查看一个列表的一个元素,它将显示为Double,而不是POSIXct。
我很困惑,所以我将不胜感激。对不起,我没有可复制的示例,我的学习曲线还不够。
由于没有要复制的数据,因此不确定如何完全回答您的问题。但您可以尝试:
lapply(Datasets, function(x) as.POSIXct(x$Datetime, format = "%Y-%m-%d %H:%M:%S", tz="America/Edmonton")
这在没有指定类类型的情况下起作用。