将Map与read.csv和管道分隔符一起使用会导致错误

时间:2019-04-27 14:24:05

标签: r file csv upload

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

我尝试使用lapply,但是stil得到的错误略有不同。

这是我到目前为止的代码

  

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列上使用散布,但尚未为此考虑代码

> 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

1 个答案:

答案 0 :(得分:0)

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

此代码段应执行您想要的操作:

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