在循环中读写多个csv

时间:2016-03-09 17:42:46

标签: r

我在文件夹中有1000个文件.dta:

C:/Folder/data1.dta
C:/Folder/data2.dta
C:/Folder/data" ".dta
C:/Folder/data1000.dta

我需要应用程序来估算我的1000个数据,并将这些估算数据保存在新文件夹中。

C:/Folder2/data_new1.dta
C:/Folder2/data_new2.dta
C:/Folder2/data_new" ".dta
C:/Folder2/data_new1000.dta

我用LEA包构建了一个复杂的程序,以实现非负矩阵分解的完成。这是这样的工作:

data1 <- read.dta("C:/Folder/data1.dta")

***********My program******

write.dta (data1, "C:/Folder/data_new1.dta")

我搜索一个方法来为我的1000个数据集循环这个。有了Stata,我可以这样做:

forvalues i=1/1000 {

data`i' <- read.dta("C:/Folder/data`i'.dta")

***********My program******

write.dta (data`i', "C:/Folder/data_new`i'.dta")

1 个答案:

答案 0 :(得分:1)

使用清单:

f <- dir(pattern = "dta")
dat <- lapply(f, read.dta)
# do stuff to every data.frame
for (i in seq_along(dat)) {
  write.dta(dat[[i]], paste0("data_new", i, ".dta"))
}