Вставьте столбец с именем файла - PullRequest
0 голосов
/ 23 января 2020

Имея этот код, можно прочитать несколько csv из пути к файлу

setwd("C:/Users/Nathalie/mycsvs")
files <- list.files(path = "C:/Users/Nathalie/mycsvs",pattern = ".csv")
temp <- lapply(files, fread, sep=",")

Как можно добавить столбец данных, который будет иметь имя файла, из которого пришла каждая строка?

1 Ответ

1 голос
/ 23 января 2020

Мы можем использовать Map и создать новый столбец с cbind для отображения имени файла для каждого файла.

Map(cbind, lapply(files, data.table::fread, sep=","), filename = files)

Мы также можем использовать функции из пакета purrr, чтобы сделать то же самое.

library(purrr)
map2(map(files, data.table::fread, sep=","), files, cbind)

Чтобы использовать lapply, вместо этого мы можем l oop по индексу имен файлов и использовать transform, чтобы добавить новый столбец с именем файла.

lapply(seq_along(files), function(x) transform(read.csv(files[x]), file = files[x]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...