Цель: из списка векторов одинаковой длины создать матрицу, в которой каждый вектор станет строкой.
Пример:
> a <- list()
> for (i in 1:10) a[[i]] <- c(i,1:5)
> a
[[1]]
[1] 1 1 2 3 4 5
[[2]]
[1] 2 1 2 3 4 5
[[3]]
[1] 3 1 2 3 4 5
[[4]]
[1] 4 1 2 3 4 5
[[5]]
[1] 5 1 2 3 4 5
[[6]]
[1] 6 1 2 3 4 5
[[7]]
[1] 7 1 2 3 4 5
[[8]]
[1] 8 1 2 3 4 5
[[9]]
[1] 9 1 2 3 4 5
[[10]]
[1] 10 1 2 3 4 5
Я хочу:
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 1 2 3 4 5
[2,] 2 1 2 3 4 5
[3,] 3 1 2 3 4 5
[4,] 4 1 2 3 4 5
[5,] 5 1 2 3 4 5
[6,] 6 1 2 3 4 5
[7,] 7 1 2 3 4 5
[8,] 8 1 2 3 4 5
[9,] 9 1 2 3 4 5
[10,] 10 1 2 3 4 5
simplify2array
это базовая функция, которая довольно интуитивно понятна. Однако, поскольку R по умолчанию сначала заполняет данные по столбцам, вам нужно будет транспонировать вывод. (sapply
используетsimplify2array
, как описано вhelp(sapply)
.)источник
Непросто, но работает:
источник
rjson
результатами,colMeans
работает только для этого метода! Спасибо!Встроенная
matrix
функция имеет удобную возможность ввода данныхbyrow
. Объедините это с вunlist
вашем списке источников, и вы получите матрицу. Нам также необходимо указать количество строк, чтобы можно было разбить данные, не указанные в списке. То есть:источник
t( matrix( unlist(a), ncol=length(a) ) )
.где «а» - это список. Будет работать с неравным размером строки
источник
источник
NA
как вместо этого подставляются значения в конце.