Cel: z listy wektorów o równej długości utwórz macierz, w której każdy wektor stanie się wierszem.
Przykład:
> 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
Chcę:
[,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
to podstawowa funkcja, która jest dość intuicyjna. Jednakże, ponieważ R domyślnie wypełnia dane kolumnami, będziesz musiał transponować dane wyjściowe. (sapply
zastosowaniasimplify2array
, jak udokumentowano whelp(sapply)
.)źródło
Nie jest to proste, ale działa:
źródło
rjson
wynikamicolMeans
działa tylko w przypadku tej metody! Dziękuję Ci!Wbudowana
matrix
funkcja ma przyjemną opcję wprowadzania danychbyrow
. W połączeniu zunlist
na liście źródeł otrzymasz macierz. Musimy również określić liczbę wierszy, aby można było rozbić dane niepubliczne. To jest:źródło
t( matrix( unlist(a), ncol=length(a) ) )
.gdzie „a” to lista. Będzie działać dla nierównego rozmiaru wiersza
źródło
źródło
NA
jaki zamiast tego wypełnia się wartościami na końcu.