r - 如何将多个文件加载到 R 中而不覆盖现有文件?

标签 r loops for-loop

您好,我想将几​​个 .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/

相关文章:

r - 为 Shiny 的应用程序创建桌面图标

rvest:xpath 获取当前节点处的文本,并删除子节点

swift - 循环 UITapGestureRecognizer 只添加到最后一个而不是全部

java - 为什么我的增量计算不正确?

C: 将 'while' 循环转换为 'for' 循环

关于 R 中的 data() 函数

r - Plyr/data.table 子集化

javascript - JavaScript 对象的 For 循环

python - 计算 python 中的二维列表

列表理解中的 Python if 语句