У меня есть проблема, которую я пытаюсь решить, и я столкнулся с кирпичной стеной.Я пытаюсь найти среднее значение для набора данных с указанием конкретных названий загрязнителей и идентификационного номера.Так что код до цикла for, я считаю, работает нормально.Я создаю функцию с 3 аргументами, создаю пустой data.frame и затем связываю все мои файлы в одну переменную с именем «dat».
Теперь я пытаюсь подмножество этих новых связанных данных «id» ипо определенному названию загрязнителя (есть два из них, названные сульфатом и нитратом).Как видите, код в цикле for - беспорядок.
В частности, я не уверен, как установить два параметра / аргумента в одну функцию "which", поэтому я попытался создать отдельный для каждого.Я думал, что смогу использовать медианную функцию, чтобы найти среднее между обоими значениями
pollutantmean <- function(directory, pollutant, id = 1:332) {
files_list <- list.files(directory, full.names = TRUE)
dat <- data.frame()
for (i in 1:332){
dat <- rbind(dat, read.csv(files.list[1]))
}
subset_id <-dat[which(dat[, "id"] ==id) , ]
subset_poll <-dat[which(dat[, "pollutant"] ==pollutant) , ]
median(subset_id)
}
. Вот фотография того, как выглядят данные головы / хвоста в R. ![enter image description here](https://i.stack.imgur.com/Ruxv7.png)
РЕДАКТИРОВАТЬ1: Итак, я смог инициализировать функцию (правильный термин?), Но при попытке запустить ее с помощью ввода получаю множество «неопределенных столбцов, выбранных».
pollutantmean <- function(directory, pollutant, ID = 1:332) {
files_list <- list.files(directory, full.names = TRUE)
dat <- data.frame()
for (i in 1:332) {
dat <- rbind(dat, read.csv(files_list[1]))
}
subset_id <- dat[which(dat[, "ID"] == ID & dat[, "pollutant"] ==
pollutant) ]
median(subset_id[, "pollutant"], na.rm = TRUE)
}
Функция помещается в память очень хорошо, но когда я пытаюсь ввести параметры "pollutantmean (" specdata "," sulfate ", 1:10)", я получаю следующие ошибки.
Error in `[.data.frame`(dat, , "pollutant") : undefined columns selected
In addition: Warning message:
In dat[, "ID"] == ID :
Error in `[.data.frame`(dat, , "pollutant") : undefined columns selected