Последовательное именование переменных (новичок) - PullRequest
1 голос
/ 14 марта 2012

Я хотел бы назначить данные, созданные в цикле, соответствующей последовательности последовательно пронумерованных переменных. Как написано, цикл в этом примере просто перезаписывается каждый раз, так что все, что сохраняется, - это окончательный набор данных, назначенный матричным хранилищам. Я хотел бы, чтобы каждая итерация создавала новую переменную с именем «somename (counter)» и сохраняла текущие значения для матричных хранилищ в этой переменной. Затем цикл ниже должен создать переменные somename0 со значениями 0,0,0,0, somename1 со значениями 1: 4 и somename2 со значениями 2,4,6,8. Я думаю, что динамическое создание переменных в цикле лучше всего подходит для автоматизации именования переменных и их количества.

например:

no_its <- 3  
counter <- 0
while(counter < no_its){
    a <- c(counter*(1:4))
    stooges <- as.matrix(a)
    rownames(stooges)<-c("Larry","Moe","Curly","Shemp")
    counter <- counter+1
}
stooges

output:
      [,1]
Larry    2
Moe      4
Curly    6
Shemp    8

Ответы [ 2 ]

2 голосов
/ 14 марта 2012

Попробуйте использовать списки, это всегда окажется лучшим выбором в R

counter <- 0:2
names(counter) <- paste("somename",seq_along(counter)-1,sep="")
(result <- lapply(counter, function(counter) counter*1:4))
result[["somename1"]]
## only if you must
attach(result, pos=2)
ls(pos=2)
0 голосов
/ 14 марта 2012

Если вы хотите матрицу, то создайте пустую матрицу, а затем заполните ее:

 stooges <- matrix(NA, ncol=4, nrow=4)
 row.names(stooges)<-c("Larry","Moe","Curly","Shemp")
 stooges[1:4, 1:4] <- col(stooges) * 1:4
 stooges
#---------
      [,1] [,2] [,3] [,4]
Larry    1    2    3    4
Moe      2    4    6    8
Curly    3    6    9   12
Shemp    4    8   12   16
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...