Слияние CSV-файлов в R - PullRequest
1 голос
/ 03 мая 2020

У меня есть около 5000 CSV-файлов небольших размеров. у каждого есть минимум 4 столбца и максимум 7 столбцов. Я хочу объединить их все либо в одну таблицу, либо в разные таблицы в одну рабочую книгу. Я упомянул Попытка объединить несколько файлов CSV в R в экземпляре. Первый ответ, похоже, сработал, но консоль выдала мне сообщение об ошибке:

Ошибка: столбец V3 не может быть преобразован из символа в число c Кроме того: было 50 или более предупреждений (используйте warnings (), чтобы увидеть первые 50)

То, что df является функцией по умолчанию в R. Итак, я присвоил значение как a<- list.files(.........) Где я иду не так. Заранее спасибо за помощь.

1 Ответ

2 голосов
/ 03 мая 2020

Это потому, что в некоторых случаях столбец V3 интерпретируется как символ, а в других - как цифра c (readr::read_csv пытается угадать ваш тип данных для ускорения импорта).

Итак , вы можете попробовать следующее

library(dplyr)
library(readr)

df <- list.files(path="yourpath", full.names = TRUE) %>% 
  lapply(read_csv,  col_types = cols( .default = col_character())) ) %>% 
  bind_rows 

Вы будете импортировать все столбцы в виде символов там, за счет производительности (и возможной необходимости изменить типы столбцов позже)

Эквивалент data.table реализация (должна быть быстрее):

library(data.table)

df <- lapply(list.files(path="yourpath", full.names = TRUE), fread)
df <- rbindlist(df, use.names = TRUE, fill = TRUE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...