将多个文件读入多个数据框

标签 r for-loop stata

在d:\文件夹中,我有很多Stata文件,比如data_aa_1.dta、data_aa_2.dta、data_aa_3.dta data_bb_1.dta、data_bb_2.dta、data_bb_3.dta、data_cc_1.dta……我想转换这些文件并获得与 R 中的 dta 文件一样多的数据帧。所以,我相信我必须遍历 c("aa", "bb", "cc") 和 c(1:3)。我尝试了以下内容:

library(foreign)

for(i in c("aa","bb","cc"){
    for (j in 1:3){
        data_[i]_[j] <-read.dta("d:/folder/data_[i]_[j].dta")
    }
}

但是,这看起来不对——当然。

任何帮助将不胜感激。

谢谢!

最佳答案

尝试这个,

fl = list.files(pattern = "dta", path = "d:/folder", 
                full.names = TRUE)
dl = lapply(fl, foreign::read.dta)
names(dl) = tools::file_path_sans_ext(fl)
str(dl)

关于将多个文件读入多个数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218498/

相关文章:

r - 如何在 rgl 中绘制圆锥体的一部分?

r - 在 Rprofile 中设置 `width`

r - 无法在具有大量可用内存的 R 中分配向量

r - 是否可以创建自渲染 Rmarkdown 文档?

javascript - forEach在javascript中同时遍历两个数组

ruby - 在 Ruby 1.8 中返回 lambda 内部的 for 循环崩溃

c++ - 动态更改嵌套的 for 循环顺序

r - 如何从 Stata 或 R 中的观察中删除某些特定单词?

installation - 从命令 : ado dir 生成的列表中重新安装软件包

SAS proc 导入错误 : "Didn' t see end for |varnames| element. 得到 -> ||"