您好,我想将几个 .sas7bdat 格式的数据库加载到 R 中。每次加载新数据库时,我想显示其名称(例如 file.sas7bdat -> file)。我用 R 编写了一段代码(如下所示),但它不起作用。我认为它会用新数据库覆盖现有数据库。如果您有任何改进建议,我将不胜感激。
getwd()
files<-list.files(pattern="*.sas7bdat")
for (i in 1:length(files)) {
data[i]<-read.sas7bdat(files[i])
}
最佳答案
我手头没有任何 Sad7bdat 文件,但这个概念应该适用于大多数 read.*
函数。您使用 for 循环的方向是正确的,但可以使用 lapply()
直接创建列表,如下所示:
#Make a few CSV files
x <- matrix(rnorm(10), ncol = 2)
write.csv(x, "a.csv")
write.csv(x, "b.csv")
#Read them into a list
fileList <- lapply(list.files(pattern = "*.csv"), function(x) read.csv(x))
#check out what we ended up with
str(fileList)
#---
List of 2
$ :'data.frame': 5 obs. of 3 variables:
..$ X : int [1:5] 1 2 3 4 5
..$ V1: num [1:5] -0.451 -0.317 -1.225 0.445 -1.361
..$ V2: num [1:5] 0.489 -2.8154 0.5147 -0.0561 0.826
$ :'data.frame': 5 obs. of 3 variables:
..$ X : int [1:5] 1 2 3 4 5
..$ V1: num [1:5] -0.451 -0.317 -1.225 0.445 -1.361
..$ V2: num [1:5] 0.489 -2.8154 0.5147 -0.0561 0.826
关于r - 如何将多个文件加载到 R 中而不覆盖现有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26018671/