2016-07-18 7 views
-1

Ich bin brandneu zu R und ich versuche herauszufinden, wie die Zeilen von der folgenden Ausgabe summieren.Summierung von Zeilen in Matrizen erstellt von lapply

u <- c(1,2,3) 
x <- lapply(u, replicate, rbinom(10,1,.5)) 

Wenn ich das x zu

[[1]] 
     [,1] 
[1,] 0 
[2,] 0 
[3,] 1 
[4,] 1 
[5,] 0 
[6,] 1 
[7,] 1 
[8,] 1 
[9,] 1 
[10,] 0 

[[2]] 
     [,1] [,2] 
[1,] 0 1 
[2,] 0 1 
[3,] 1 0 
[4,] 1 1 
[5,] 1 1 
[6,] 1 1 
[7,] 1 1 
[8,] 1 0 
[9,] 1 0 
[10,] 0 0 

[[3]] 
     [,1] [,2] [,3] 
[1,] 1 0 0 
[2,] 1 1 1 
[3,] 1 0 1 
[4,] 1 0 1 
[5,] 0 0 1 
[6,] 0 0 1 
[7,] 0 1 0 
[8,] 1 1 1 
[9,] 0 1 1 
[10,] 0 1 1 

gleich ist, wenn ich die Codierung verwenden

rowSums(x) 

oder

rowSums(x[2]) 

Ich erhalte diese Fehler

Error in rowSums(x) : 'x' must be an array of at least two dimensions 

Wie kann ich die Zeilen summieren? Gibt es auch eine Möglichkeit, die Tabellen aufzulösen, so dass ich individuelle Analysen durchführen kann? Vorzugsweise ein Weg, der nicht manuell ist, so kann ich es verwenden, wenn ich 100+ Tabellen habe

+0

Sie sind auf der Suche nach 'lapply (x, rowSums)'? Solche Objekte in Listen zu organisieren ist in der Regel die bevorzugte Methode in R. – lmo

Antwort

2

Eine Schleife über die einzelnen Elemente der Liste wird bequem unter Verwendung durchgeführt. Sie könnten versuchen, diese:

lapply(x, rowSums) 
#[[1]] 
# [1] 0 1 0 1 1 0 1 1 1 0 
# 
#[[2]] 
# [1] 2 1 2 2 1 2 1 1 0 1 
# 
#[[3]] 
# [1] 1 1 2 1 1 0 1 1 1 1 

Daten:

u <- c(1,2,3) 
set.seed(123) 
x <- lapply(u, replicate, rbinom(10,1,.5))