Имам следния проблем: Имам огромен списък от матрици с уникални имена, които споделят едно и също измерение. Изчислявам някои стойности, които сега искам да присвоя на определен матричен индекс, напр. [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