проверьте, существуют ли объекты списка, и дайте им имя

#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 строку null

3. 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)]))