#r #list #matrix
#r #Список #матрица
Вопрос:
Я новичок в R. Я пытаюсь добавить матрицу в список, прежде чем возвращать ее из функции.
a <- matrix(4,4,4)
x <- list(l=1, m=2)
x["n"] <- a
Приведенное выше заканчивается следующим предупреждающим сообщением, и в список добавляется только одно число из матрицы.
Warning message:
In x["n"] <- a :
number of items to replace is not a multiple of replacement length
Как я могу это сделать? Было бы неплохо, если бы мне каким-то образом не нужно было заранее указывать размеры матрицы.
Комментарии:
1. Добро пожаловать ! Вам нужно использовать x $ n <- a
Ответ №1:
Используйте $
извлечение:
> x$n <- a
> x
$l
[1] 1
$m
[1] 2
$n
[,1] [,2] [,3] [,4]
[1,] 4 4 4 4
[2,] 4 4 4 4
[3,] 4 4 4 4
[4,] 4 4 4 4
Или [[
извлечение:
> x$n <- NULL
> x[["n"]] <- a
> x
$l
[1] 1
$m
[1] 2
$n
[,1] [,2] [,3] [,4]
[1,] 4 4 4 4
[2,] 4 4 4 4
[3,] 4 4 4 4
[4,] 4 4 4 4
Комментарии:
1. Я знаю, что
$
or[[]]
может использоваться для получения элементов напрямую вместо представления списка при ссылке. Но как это работает во время назначения. Можете ли вы указать мне на некоторую документацию по этому поводу?2. Основной документ извлечения хорошо читается. Для объектов, похожих на списки, обсуждаются только
$<-
[[<-
методы присваивания и , оба из которых являются примитивами.