#r
#r
Вопрос:
Я пытаюсь написать свою собственную функцию. И после некоторых вычислений, например, я получаю список, подобный этому ;
И, согласно данным, количество кластеров может варьироваться от 1 до 31.
Итак, независимо от того, сколько кластеров, я хочу перечислить их, как показано в приведенном ниже коде.
maxm5<-list(m.5$`Disaggregated rainfall depths`$`Cluster 1`, m.5$`Disaggregated rainfall depths`$`Cluster 2`...)
Чтобы выполнить это, я попытался sapply
;
maxm5<-sapply(1:31, function(zz) list(m.5$`Disaggregated rainfall depths`$`Cluster [zz]`))
А затем я попробовал for
цикл
month<-31
maxm5<- for (i in month) {
list(m.5$`Disaggregated rainfall depths`$`Cluster [i]`)
}
Но то, что я только что получил, — это список с 31 нулем.
И затем я хочу дать им имя, как;
m5.1<-maxm5[[1]]
m5.2<-maxm5[[2]] ....
Комментарии:
1.
for (i in month)
выполняет итерацию по векторуmonth
, который в данном случае является только номером 31. Вы, вероятно, хотите что-то вродеmonth <- 1:31
2. @camille с
month <- 1:31
, я получаюmaxm5
как 1 строку null3.
m.5$`Disaggregated rainfall depths`
возвращает список, содержащий все кластеры. Это не то, чего вы хотите?4. @josemz На самом деле это так, но мне нужно найти максимумы для каждого кластера. И когда я пишу
max(m.5$
глубину осадков с разбивкой)
, я получаю ошибку. Итак, я попытался найти максимумы отдельно5. О, моя ошибка, не заметил max, как насчет:
sapply(m.5$`Disaggregated rainfall depths`, max)
Ответ №1:
На основе вашего последнего комментария:
sapply(m.5$`Disaggregated rainfall depths`, function(x) max(x[, -(1:4)]))