2013-06-11 5 views
0

Это моя проблема:Попадая элементы списка в R

Существует предопределенный список с именем gamma с тремя позициями: gamma$'2' составляет 2х2 матрицы gamma$'3' матрицы 3х3 и 4х4 gamma$'4' матрицы. Я хотел бы иметь функцию, которая возвращает матрицу мне нужно:

GiveMatrix <- function(n) { 
    gamma.list <- #init the list of matrices 

    gamma.list$n # return the list entry named n 

Поскольку n не характер, последняя строка не работает. Я пробовал gamma.list$paste(n) и gamma.list$as.character(n), но оба не работали. Есть функция, которая преобразует n в нужный формат? Или, может быть, гораздо лучший способ? Я знаю, я не очень хорошо в R.

ответ

4

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

gamma.list[[as.character(n)]] 

В вашем примере, R ищет записи в списке под названием n. При использовании [[ используется содержимое n, что вам и нужно.

0

Я нашел его!

gamma.list[as.character(n)] - это решение, в котором я нуждался.

+2

Это вернет список из 1 с матрицей в нем, а не с матрицей. –

+0

Если вы хотите, чтобы содержимое этого элемента списка, а не новый список, используйте '[[' вместо '['. –

+0

'[[' и '[' return точно то же самое. – MaxPowers

Смежные вопросы