【发布时间】:2019-03-24 13:43:27
【问题描述】:
我在一个文件夹中有 70 个具有相同列的 csv 文件,每个文件大小为 0.5 GB。 我想将它们导入到 R 中的单个数据框中。
通常我如下正确导入它们:
df <- read_delim("file.csv",
"|", escape_double = FALSE, col_types = cols(pc_no = col_character(),
id_key = col_character()), trim_ws = TRUE)
要导入所有这些,像这样编码并且错误如下: 缺少参数“delim”,没有默认值
tbl <-
list.files(pattern = "*.csv") %>%
map_df(~read_delim("|", escape_double = FALSE, col_types = cols(pc_no = col_character(), id_key = col_character()), trim_ws = TRUE))
使用 read_csv,导入但仅显示一列,其中包含所有列和值。
tbl <-
list.files(pattern = "*.csv") %>%
map_df(~read_csv(., col_types = cols(.default = "c")))
【问题讨论】:
-
那么
read_delim的第一个位置参数是file而不是delim所以也许你应该命名参数或者实际上将.x或.传递给第一个参数。 -
Kadir,您完全有权选择不接受您过去问题的任何答案。然而,接受一个答案不仅为回答者提供了一些积分,而且还为有类似问题的读者提供了一些关闭。你会考虑回到你之前的问题并接受每个问题吗? stackoverflow.com/help/someone-answers
-
似乎其他人已经回答了您的直接问题,但我也鼓励您考虑 data.table 库中的 fread 函数。根据我的经验,fread 读取大文件的速度要快得多,您可以立即将其转换为 data.frame 以满足您的需求。