У меня есть наборы данных, в которых есть столбцы сульфатов и нитратов. В зависимости от того, что выберет пользователь, возвращается либо среднее значение сульфата, либо среднее значение нитрата. У меня есть цикл for, и внутри него есть операторы IF и ELSE, чтобы разобраться с этим. При попытке скомпилировать data.frame (datada, vec1) возникает следующая ошибка:
«Ошибка в data.frame (datada, vec1): объект« datada »не найден»
Также,утверждение else считается неожиданным. Дана следующая ошибка:
"Ошибка: неожиданное 'else' в" else "
complete <- function(directory,pollutant = "sulfate", id = 1:332) {
datada <- id
filelist <- list.files(path = directory, pattern = ".csv", full.names = TRUE)
vec <- numeric()
vec1 <- numeric()
vec2 <- numeric()
for(i in datada) {
if (pollutant == "sulfate"){
data <- read.csv(filelist[i])
vec1<- c(vec1, colMeans(data$sulfate,na.rm = TRUE )
}
data.frame(datada,vec1) #datada is not "found"
else (pollutant == "nitrate"){ #else is "unexpected"
data <- read.csv(filelist[i])
vec2<- c(vec2, colMeans(data$sulfate,na.rm = TRUE )
}
data.frame(datada,vec2)
}
Вот как выглядит один набор данных:
Date sulfate nitrate ID
1 2001-01-01 NA NA 2
2 2001-01-02 NA NA 2
3 2001-01-03 NA NA 2
4 2001-01-04 NA NA 2
5 2001-01-05 NA NA 2
6 2001-01-06 NA NA 2
7 2001-01-07 NA NA 2
8 2001-01-08 NA NA 2
9 2001-01-09 NA NA 2
10 2001-01-10 NA NA 2
11 2001-01-11 NA NA 2
12 2001-01-12 NA NA 2
13 2001-01-13 NA NA 2
14 2001-01-14 NA NA 2
15 2001-01-15 NA NA 2
16 2001-01-16 NA NA 2
17 2001-01-17 NA NA 2
18 2001-01-18 NA NA 2
19 2001-01-19 2.30 0.699 2
20 2001-01-20 NA NA 2
21 2001-01-21 NA NA 2
22 2001-01-22 NA NA 2
23 2001-01-23 NA NA 2
24 2001-01-24 NA NA 2
25 2001-01-25 2.19 4.970 2
Свойожидается что-то вроде этого:
datada vec
1 1 117
2 3 243
3 5 402
4 7 442
5 9 275
Генерируется data.frame (datada, vec1)