【问题标题】:Updating/multiple .csv files into single dataframe [duplicate]将多个 .csv 文件更新/更新为单个数据框 [重复]
【发布时间】:2017-01-06 05:25:29
【问题描述】:

您好,我正在尝试从将要更新/添加到的文件夹中创建包含多个 .csv 文件的单个数据框。

我在这里找到了以前的答案,但是我遇到了一个相当简单的错误

read.table 中的错误(file = file,header = header,sep = sep,quote = quote,: 'file' 必须是字符串或连接

dir<-"asdfasdfasdfasf/asdfasdfs" #change this to your directory

temp <- list.files(pattern="*.csv")
importDM<-lapply(temp, read.csv)

rawDM<-read.csv(importDM, header = TRUE)      #will read csv

请让我知道我做错了什么!

干杯,

【问题讨论】:

  • do.call(rbind, lapply(temp, read.csv, header = TRUE)) 应该可以工作。 importDM 是一个列表,不是字符串;这就是为什么最后一行给你一个错误。

标签: r dataframe updating


【解决方案1】:

从我在调用 list.files 函数中看到的内容,您应该添加路径参数并将“dir”分配给它。 变量 importDM 是一个列表,而 rawDM 变量不是必需的,因为您已经在 lapply 中调用了 read.csv。 如果文件具有相同的数据结构,您可以将 importDM 转换为带有 as.data.frame 的数据框。如果列表元素不遵循相同的结构,那就需要更多的工作。

这是一个包含三个 csv 文件的工作示例。

    dir <-"./data" #change this to your directory
    temp <- list.files(pattern="*.csv", path = dir, full.names = TRUE)
    importDM<-lapply(temp, read.csv, header = FALSE)
    df <- as.data.frame(importDM) 

每个 csv 文件包含三个数字 (1,2,3 - 4,5,6 - 7,8,9)

【讨论】:

  • 谢谢 Valter,这已经完成了!
【解决方案2】:

试试这个:

temp <- list.files(pattern="*.csv")

dataset <- do.call(rbind,lapply(temp,
read.csv,header=TRUE))

【讨论】:

    【解决方案3】:

    应该这样做 -

    dir<-"asdfasdfasdfasf/asdfasdfs" #change this to your directory
    temp <- list.files(pattern="*.csv")
    importDM<-lapply(temp, read.csv)
    rawDM <- do.call(rbind, lapply(raw, read.csv, header = TRUE))
    

    【讨论】:

      猜你喜欢
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多