Скопируйте первую строку нескольких файлов .csv в новый фрейм данных - PullRequest
0 голосов
/ 07 марта 2020

В моем каталоге более 1000 файлов .csv. Мне нужно выбрать первую строку (то есть имена столбцов) каждого из этих файлов и поместить их все в новый фрейм данных. Каждый .csv имеет разное количество столбцов.

На основании информации из других вопросов stackoverflow, я пришел к этому:

setwd("C:/Users/H300904/R project/files/CSV")

file_list <- list.files(getwd())
field_names <- data.frame(df)

for (file in file_list) {
   field_names <- read.csv(file="file", nrows=1, header=FALSE)
}

Мне нужна помощь правильно сослаться на «файл» и сказать ему поместить данные в следующую строку в новом фрейме данных. Любые советы?

Спасибо, что поделились своими знаниями со мной.

1 Ответ

1 голос
/ 07 марта 2020
file_list <- list.files(getwd())

field_names <- list()
for (i in seq_along(file_list) {
  field_names[i] <- read.csv(file=file_list[i], nrows=1, header=FALSE)
}

И затем, если вы действительно хотите использовать data.frame:

library(data.table)
rbindlist(field_names, fill=TRUE)

Редактировать:

Как подсказывает @ r2evans, мы вероятно, будет использовать lapply вместо for l oop (но они оба (почти) точно так же).

field_names <- lapply(file_list, read.csv, nrows=1, header=FALSE)

Здесь lapply перебирает элементы file_list и передает их в качестве первого аргумента read.csv (вместе с другими аргументами nrows=1, header=FALSE). Затем lapply объединяет результаты в список.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...