【问题标题】:header=FALSE not working when importing multiple CSVs at onceheader=FALSE 一次导入多个 CSV 时不起作用
【发布时间】:2020-01-28 16:57:37
【问题描述】:

我正在尝试一次从一个文件夹中导入多个 CSV,但这些 CSV 没有列名。以下代码有效,但第一行被转换为列名:

dat <- list.files(pattern="*.csv") %>% lapply(read.csv)

当我尝试使用下面的代码时:

dat <- list.files(pattern="*.csv") %>% lapply(read.csv(header = FALSE))

我收到以下错误消息:

read.table 中的错误(file = file,header = header,sep = sep,quote = quote,:缺少参数“file”,没有默认值

知道如何避免这种情况吗?

【问题讨论】:

  • 试试dat &lt;- list.files(pattern="*.csv") %&gt;% lapply(function(x) read.csv(x,header = F))?

标签: r


【解决方案1】:

问题来自于对FUN 的附加参数指定不正确。

? lapply:

lapply(X, FUN, ...)

...       FUN 的可选参数。

您需要对代码进行微小的更改才能使其正常工作:

dat <- list.files(pattern="*.csv") %>% lapply(read.csv, header=FALSE)

【讨论】:

    【解决方案2】:

    如果你在 tidyverse 中,你可能想要

    list.files(pattern=".csv") %>%
       purrr::map(readr::read_csv, col_names=FALSE)
    

    (注意read.csvreadr::read_csv 之间默认行为的差异)

    【讨论】:

    • 对免费的 tidyverse 投反对票? (我不会提到它,除非 OP 已经在使用 %&gt;%
    猜你喜欢
    • 1970-01-01
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 2016-08-15
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多