如何在R for循环中保存多个数据帧

时间:2018-02-14 23:52:01

标签: r for-loop dataframe

我想要做的是在下面的循环中为每个文件保存一个y数据帧。现在,我只有最后一个。

temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.csv)

for (file in myfiles){
 y <- some code
}

y对26个变量进行了26次观察。

很抱歉,如果这不是一个有效的例子。即使取样,我的数据也太大了。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:4)

df <- do.call("rbind",lapply(list.files(pattern = "*.csv"),read.csv, header = TRUE))

这是example

答案 1 :(得分:1)

如果我理解得很清楚,您想将y保存为csv?你可以这样做:

temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.csv)
## Adding a counter to be incremented in the loop
counter <- 1

for (file in myfiles){
 y <- some code
 ## writing the csv
 write.csv(y, file = paste0("my_csv_", counter, ".csv")
 ## Increment the counter
 counter <- counter + 1
}

或者您想将y保存为包含所有data.frames的变量吗?在这种情况下,您可以执行以下操作:

temp = list.files(pattern="*.csv")
myfiles = lapply(temp, read.csv)
## Adding a counter to be incremented in the loop
counter <- 1
## Create an empty list y

for (file in myfiles){
 y[[counter]] <- some code
 ## Increment the counter
 counter <- counter + 1
}