在R中使用循环进行数据格式化

时间:2013-05-22 09:49:55

标签: r loops zoo

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

获取警告不知道如何应用该功能.... 谢谢!

1 个答案:

答案 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函数,并阅读其帮助页面上引用的文章。