作为POSIXct应用于多个数据帧的特定列

问题描述 投票:0回答:1

似乎我永远无法正确使用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。

我很困惑,所以我将不胜感激。对不起,我没有可复制的示例,我的学习曲线还不够。

r dataframe lapply posixct
1个回答
0
投票

由于没有要复制的数据,因此不确定如何完全回答您的问题。但您可以尝试:

lapply(Datasets, function(x) as.POSIXct(x$Datetime, format = "%Y-%m-%d %H:%M:%S", tz="America/Edmonton")

这在没有指定类类型的情况下起作用。

© www.soinside.com 2019 - 2024. All rights reserved.