У меня следующая проблема: у меня есть огромный список матриц с уникальными именами, которые имеют одно и то же измерение. Я вычисляю некоторые значения, которые я теперь хочу присвоить определенному матричному индексу, например. [3,4]. Поскольку у меня так много матриц, я создал список с именами, которые должны быть у этих матриц, а затем я использовал assign()
для создания всех этих матриц (пусто). Теперь я хотел бы вызвать отдельные матрицы с именем переменной, чтобы присвоить разные значения определенным элементам матрицы. Я знаю только команды assign() and eval(parse())
, но заставить их работать не удалось. Я пробовал несколько вещей без успеха:
assign(x=MatrixNameList[i][3,4],value=z)
assign(x=MatrixNameList[i],value=z)[3,4]
eval(parse(text=MatrixNameList[i]))[3,4]<-z
assign(x=eval(parse(text=MatrixNameList[i]))[3,4] ,value=z)
Поэтому мне интересно, есть ли возможность для того, что я хочу сделать. Структура моего кода представляет собой простой цикл:
Matrix1 <- Matrix2 <- matrix(nrow=3,ncol=4)
MatrixNameList <- c('Matrix1', 'Matrix2')
for (i in 1:length(MatrixNameList)){
z <- calculatedValue <- 4 # different for the single matrices
assign... ?
eval(parse... ?
}
Я надеюсь, что смог ясно указать на мою проблему. Заранее спасибо, Эрик
lapply(matlist, function(m) {m[3,4] <- z; m})
был бы решением. - person Joshua Ulrich   schedule 12.06.2013