R-循环几个文件

时间:2019-05-30 18:50:20

标签: r list loops dataframe

我想将此代码应用于多个数据帧列表(df)。

df1<- lapply(df1, function(x) {
  x$Date <- as.Date((x$Date), format="%Y-%m-%d")
  x})

数据帧列表称为df1df2df3df4abc1abc2abc3abc4。日期列始终位于同一位置。

我尝试执行此操作以完成df1-4,但不起作用。

for (i in 1:4) {
  df[i] <- lapply(df[i], function(x) {
  x$Date <- as.Date((x$Date), format="%Y-%m-%d")
  x})}

我还考虑过将所有文件名放入列表中并以此循环:

df_list = c("df1","df2", "df3", "df4", "abc1", "abc2", "abc3", "abc4")

但是我还没有成功。我想保留文件的原始名称。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

for(i in 1:length(df_list)) {
  df_list[[i]] <- lapply(df_list[[i]], function(x) {
    x$Date <- as.Date((x$Date), format="%Y-%m-%d")
    x})
}

这对您有用吗?

对我来说确实如此:

class(df_list[[1]][[1]]$Date)
[1] "Date"

您的错误似乎是由于您使用[]而不是[[]]而发生的。您必须使用双括号来引用data.frame。