У меня есть папка с несколькими сотнями файлов csv
. Я хочу использовать lappply
для вычисления среднего значения одного столбца в каждом файле csv и сохранить это значение в новый файл csv, который будет иметь два столбца: Столбец 1 будет именем исходного файла. Столбец 2 будет средним значением для выбранного поля из исходного файла. Вот то, что я до сих пор:lapply r в один столбец csv-файла
setwd("C:/~~~~")
list.files()
filenames <- list.files()
read_csv <- lapply(filenames, read.csv, header = TRUE)
dataset <- lapply(filenames[1], mean)
write.csv(dataset, file = "Expected_Value.csv")
Который дает сообщение об ошибке:
предупреждение: В mean.default ("2pt.csv" [[1L]], ...): аргумент не является числовым или логическим: возвращение NA
Поэтому я думаю, что у меня есть 2 (по крайней мере) проблемы, которые я не могу понять.
Во-первых, почему бы не признать, что столбец 1 является числовым? Я дважды, triple проверил файлы csv, и я уверен, что этот столбец является числовым.
Во-вторых, как получить выходной файл, чтобы вернуть два столбца, как я описал выше? Я еще далеко не добрался до второй части.
Я хотел сначала перенести первую часть. Любая помощь приветствуется.
в порядке. Я запускаю это на тестовом образце всего двумя файлами. Я запустил 'str' и' head', которые подтвердили, что столбец является числовым. Я не понимаю ваш комментарий, но вы все еще пытаетесь вычислить среднее значение в именах строк [1] ... Возможно, это моя проблема. Я не знаю, как указать конкретный столбец в файле csv при использовании 'lapply'. $, который я использую при вычислении среднего значения в столбце в одном файле, является недопустимым оператором. Я читал, что должен использовать [], но я не уверен, что это правильно для того, что я пытаюсь сделать. – Luke55122