0

我想以相同的方式格式化很多 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"))

收到警告不知道如何应用该功能....谢谢!

4

1 回答 1

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以免与 list 混淆x。这会修改当前的 df 并将其返回,lapply然后将修改后的数据帧收集到一个新列表中(我保存在其中,x2但您可以将其保存回x.

如果您想就地编辑数据框,那么宏可能会更好地工作,请参阅defmacrogtools 包中的函数并阅读其帮助页面上引用的文章。

于 2013-05-22T12:48:46.363 回答