我想以同样的方式格式化df的数量 - 是否可以编写循环?我们称之为df1,df2,df3,......
df1$timestamp<-as.POSIXct(df1$timestamp,format="%Y-%m-%d %H:%M:%S")
df1.zoo<-zoo(df1[,-1],df1[,1])
尝试:
x<-list(df1,df2,df3)
lapply(x, x$timestamp<-as.POSIXct(x$timestamp,format="%Y-%m-%d %H:%M:%S"))
获取警告不知道如何应用该功能.... 谢谢!
答案 0 :(得分:0)
lapply
函数需要传递函数,而不是表达式。尝试:
x <- list(df1, df2, df3)
x2 <- lapply(x, function(y) {
y$timestamp <- as.POSIXct(y$timestamp, format="%Y-%m-%d %H:%M:%S")
y
} )
我将函数参数更改为y
,这样就不会将其与列表x
混淆。这会修改当前的df并将其返回,lapply
然后将修改后的数据框收集到一个新列表中(我保存在x2
中,但您可以保存回x
。
如果你想编辑适当的数据框,那么宏可能会更好用,请参阅gtools包中的defmacro
函数,并阅读其帮助页面上引用的文章。