Цикл с матрицами, созданными с помощью функции назначения в проекте R

Я создал несколько матриц с помощью функции assign следующим образом:

for (i in 2:105) { # Loop for creating and filling matrices
    (assign(paste("m",i,sep=""),Datos[(x[i-1]+1):x[i],1:14]))  
}

Это дает мне несколько матриц... от m2 до m105... это именно то, что я хотел, потому что i может извлекать и вызывать эти матрицы с их индексом, таким как m2[i,j] или m65[i,j] и т. д.

Моя проблема в том, что я хочу сделать цикл, который включает все мои матрицы "m", но я не знаю, какой код может быть правильным для этого, потому что мне нужно что-то вроде:

paste("m",i,"[i,j]",sep="") чтобы вернуть m2[i,j]...m3[i,j] ...... m105[i,j] и выполнить цикл над этим, но ясно, что функция вставки возвращает строку и не распознает m2.... m105 как матрицы..... она возвращает m2[i,j] в виде текста.

Что я должен делать ?

Большое спасибо ! С уважением


person Tomás Ayala    schedule 01.10.2012    source источник
comment
Это неправильный подход к этой проблеме. Составление списка привело бы к гораздо менее мучительному коду.   -  person IRTFM    schedule 01.10.2012
comment
Я попытался использовать список и успешно сгенерировал свои матрицы. например, если l была моей переменной списка, от l[[2]] до l[[105]] возвращались все мои матрицы... дело в том, что я не знал, как получить доступ к конкретным индексам каждой матрицы в списке ... что-то вроде извлечения l[[2]][i,j]... все же помощь в этом будет оценена... Большое спасибо!   -  person Tomás Ayala    schedule 02.10.2012
comment
Наконец-то я понял, как управлять списком. Я сделал: ` v‹-vector(list,104) for (i in 2:105) { # Цикл для создания и заполнения матриц v[[i]]‹-Datos[(x[i-1]+1): x[i],1:14] }` И теперь я могу легко вызывать свои матрицы с их индексами как v[[i]][k,j]..... спасибо за помощь!   -  person Tomás Ayala    schedule 02.10.2012


Ответы (1)


Вы должны использовать get:

get(paste("m", i, sep=""))[i,j]
person Ricardo Oliveros-Ramos    schedule 01.10.2012