У меня есть несколько csv, каждый из которых содержит несколько наблюдений для одного участника по нескольким переменным. Скажем, каждый файл CSV выглядит как ниже, и имя файла указывает на участника ID:R найти максимумы нескольких переменных из нескольких файлов .CSV
data.frame(
happy = sample(1:20, 10),
sad = sample(1:20, 10),
angry = sample(1:20, 10)
)
Я нашел некоторый код в отличном StackOverflow ответ, который позволяет мне получить доступ ко всем файлам, сохраненным в определенную папку , вычислить суммы этих эмоций, и выводить их в файл:
# access all csv files in the working directory
fileNames <- Sys.glob("*.csv")
for (fileName in fileNames) {
# read original data:
sample <- read.csv(fileName,
header = TRUE,
sep = ",")
# create new data based on contents of original file:
data.summary <- data.frame(
File = fileName,
happy.sum = sum(sample$happy),
sad.sum = sum(sample$sad),
angry.sum = sum(sample$angry))
# write new data to separate file:
write.table(data.summary,
"sample-allSamples.csv",
append = TRUE,
sep = ",",
row.names = FALSE,
col.names = FALSE)}
Однако, я могу только получить «сумму», чтобы работать в этой функции. Я хотел бы не только найти суммы каждой эмоции для каждого участника, но и максимальное значение каждого из них.
Когда я пытаюсь изменить выше:
for (fileName in fileNames) {
# read original data:
sample <- read.csv(fileName,
header = TRUE,
sep = ",")
# create new data based on contents of original file:
data.summary <- data.frame(
File = fileName,
happy.sum = sum(sample$happy),
happy.max = max(sample$happy),
sad.sum = sum(sample$sad),
angry.sum = sum(sample$angry))
# write new data to separate file:
write.table(data.summary,
"sample-allSamples.csv",
append = TRUE,
sep = ",",
row.names = FALSE,
col.names = FALSE)}
Я получаю следующее предупреждение: В макс (образец $ счастливые): нет, не пропущенных аргументов макс; возвращение -Inf
Искренне благодарен за любой совет, который может дать мне!
В конце концов после прочтения одного файла имя столбца не является «счастливым» (например, 'Happy'). Управляйте структурой шаблона data 'sample' путем печати' str (sample) ' – jogo
Подумайте также о том, что вы пишете файл« sample-allSamples.csv ». Если вы запустите свой скрипт во второй раз, этот файл находится в списке имен файлов 'FileNames <- Sys.glob (" *. Csv ")' – jogo