【问题标题】:Using loops to read files from directory and save them as elements of list [duplicate]使用循环从目录中读取文件并将它们保存为列表的元素[重复]
【发布时间】:2019-01-14 18:16:40
【问题描述】:

我有一些从 1 到 22 逐渐命名的文件,即“chr1.csv”、“chr2.csv”...“chr22.csv”。每个文件都包含一个与列具有相同变量的数据库。我想创建一个循环来读取这些文件并将它们保存为列表的元素。

我已经尝试过这个 sn-p 的代码,但它不起作用。

file <- vector("character", 22)

data<-vector("list", length = 22)

for (i in 1:22) {
str <- gsub("number", i, "chrnumber.csv")
file[i] <- str
}

for (i in file) {
data <- read.csv(i, sep="")
}

【问题讨论】:

  • 试试files &lt;- list.files(pattern = "^chr\\d+\\.csv", full.names = TRUE);lapply(files, read.csv)
  • 怎么不工作了?您确定您的工作目录设置为正确的文件夹(使用setwd)吗?您可能还想查看list.files 以获取实际文件名
  • 有一个名为tor 的新包可用,它有一个list_csv 函数,可以将目录中的所有.csv 文件读取到一个列表中。 cran.r-project.org/web/packages/tor/tor.pdf

标签: r list loops


【解决方案1】:

创建文件向量的更简单方法:

file <- paste0("chr", 1:22, ".csv")

您必须对输出列表进行子集化以保存结果

data<-vector("list", length = 22) 
names(data)<-file

for (i in file) {
data[[i]] <- read.csv(i, sep="")
}

【讨论】:

    猜你喜欢
    • 2016-02-12
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多