【问题标题】:Using Map with read.csv and a pipe delimiter causing errors将 Map 与 read.csv 和管道分隔符一起使用会导致错误
【发布时间】:2019-09-16 18:56:36
【问题描述】:

我正在尝试将一系列文本文件上传到表格中。 Read.csv 适用于 1 个文件,但是当我尝试使用 Map & rbind 组合文件时,我得到了我不明白的错误。 一旦我在一个表中,我就可以开始清理数据了

我尝试使用 lapply 但仍然得到错误,只是略有不同。

这是我目前的代码

install.packages(c("readr","dplyr","tidyr","purrr"))
library(readr) 
library(dplyr)
library(tidyr)
library(purrr)
folder <- "D:/SCANNER/"
files_list <- list.files(path = folder, pattern="*.hmd")
data_wcci<- files_list %>% map(read.csv(header = FALSE,skip="8"))%>%  reduce(rbind)
data_wcci

我希望最后能有一张桌子。我不断收到以下错误消息。

Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
 argument "file" is missing, with no default

这是文本文件中数据的一个小例子。上传后,我需要删除 \ 并拆分为自己的列。消除 ;我还需要在 V1 列上使用 spread,但还没有考虑过这个代码

> data_wcci
                  V1  V2      V3     V4     V5    V6  V7   V8
1            SURVEY\\TTS       11.00         TTS01 FALSE WDM WDM;
2      SECTION\\A3054020     2054.00 270711 270711    NA   ;     
3           OBSERV\\LLRT CR1    0.00    10;           NA         
4              OBVAL\\13       13.20     V;           NA         
5           OBSERV\\LRRT CR1    0.00    10;           NA         
6              OBVAL\\13        3.00     V;           NA         
7           OBSERV\\LLTX CR1    0.00    10;           NA         
8              OBVAL\\13        1.26     V;           NA         
9           OBSERV\\LRTX CR1    0.00    10;           NA

【问题讨论】:

    标签: r file csv upload


    【解决方案1】:

    您的代码不起作用,因为您的 read.csv 函数试图读取存储在您文件夹中的文件,但您必须提供完整路径才能读取它们。例如,您可以使用 paste0(path, list.files[[1]]) 执行此操作。

    这段代码 sn-p 应该做你想做的事:

    do.call("rbind", lapply(files_list, function(x) read.csv(paste0(folder, x))))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-22
      • 2011-06-30
      • 2013-11-11
      • 2014-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-11
      相关资源
      最近更新 更多