#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)