R: Создание новых переменных в цикле for и присваивание значений

Я думаю, что это лучший способ использования.

str_shuffle(md5(rand(0,100000)))
-1
задан Fred 17 March 2019 в 22:52
поделиться

2 ответа

Чтобы ответить на комментарий @Moody_Mudskipper:

Лучший способ объявить иерархические данные - это использовать индексированные списки:

hierdata <- lapply(1:sample,
       function(iterator)
         {
         temp_list <- lapply(1:10,
                function(j)
                  {
                  x[,j]<-0
                  value <- rowSums(alpha+beta+x)
                  return(value)
                })
         names(temp_list) <- lapply(1:10,function(j){paste0("temp_",j)})
         return(temp_list)
       })

на самом деле не один. лайнер ", но он содержит все хорошие" вещи ". Lapply, который возвращает список по умолчанию, поэтому он просто вкладывает список в каждый список.

Надеюсь, вам понравится "хорошая практика". :) Я просто хотел ответить на ваш вопрос именно с первой попытки.

0
ответ дан Krzysztof Nowicki 17 March 2019 в 22:52
поделиться

Попробуйте использовать

for(i in 1:sample){
  hierdata[[i]] <- list()
  for(j in 1:10){
    code_j_init <- paste0("hierdata[[",i,"]]$Test_",j,"<- list()")
    eval(parse(text = code_j_init))
    hierdata[[i]][[j]] <- list(1,2,3)
  }
}

или

for(i in 1:sample){
  hierdata[[i]] <- list()
  names <- c()
  for(j in 1:10){
    hierdata[[i]][[j]] <- list(1,2,3)
    names <- c(names,paste0("Test_",j))
  }
  names(hierdata[[i]]) <- names
}
0
ответ дан Krzysztof Nowicki 17 March 2019 в 22:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: