Чтение 647 CSV в папке, суммирование столбца в каждом и добавление сумм в новый фрейм данных в R

#r

#r

Вопрос:

У меня есть папка с 647 CSV. Внутри CSV находится столбец с именем «mxpx». Я хочу суммировать этот столбец для каждого CSV и поместить сумму в новый фрейм данных. Конечным результатом будет фрейм данных 647×1 со столбцом, помеченным как «mxpx», каждая запись представляет собой сумму mxpx из каждого CSV.

Я попытался прочитать файлы и связать их вместе, чтобы создать один фрейм данных с:

 files <- list.files(path = x, pattern = "*.csv", full.names = T)
tbl <- sapply(files, read_csv, simplify = FALSE) %>% bind_rows(.id = "id")
  

Однако я не уверен, смогу ли я продолжить этот метод, как только получу один фрейм данных.

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

Комментарии:

1. Как называются ваши файлы?

Ответ №1:

После перебора файлов с sapply помощью , прочитайте данные, извлеките ( $ ) столбец и получите sum . Поскольку это a sapply , он вернет a vector

 out <- sapply(files, function(x) sum(read.csv(x)$mxpx, na.rm = TRUE))
dat <- data.frame(mxpx = out)