a gemacht wird, ist eine Liste mit Listen:Extract Spalte aus der Liste, die aus Listen
a<-list(list(matrix(c(0,0,0,1,2,1,2,2,2,1,1,1),3),
matrix(c(0,0,1,2,2,2,2,1),2)),
list(matrix(c(0,0,1,2,2,1,1,1,2,2,2,2),3)))
> a
[[1]]
[[1]][[1]]
[,1] [,2] [,3] [,4]
[1,] 0 1 2 1
[2,] 0 2 2 1
[3,] 0 1 2 1
[[1]][[2]]
[,1] [,2] [,3] [,4]
[1,] 0 1 2 2
[2,] 0 2 2 1
[[2]]
[[2]][[1]]
[,1] [,2] [,3] [,4]
[1,] 0 2 1 2
[2,] 0 2 1 2
[3,] 1 1 2 2
ich die Faust Spalte aller Objekte extrahieren möchten. Wir wissen, ob die Liste aus einer Matrix besteht, wir können die "Map" -Funktion verwenden, um dieses Problem zu lösen, aber jetzt besteht die Liste aus Listen, wir können "Map" nicht nur verwenden, um dieses Problem zu lösen, wie kann ich das tun das leicht?
I-Code verwenden folgende dieses Problem zu lösen:
sapply(1:length(a), function(x) {Map(function(y) y[,1],a[[x]])})
Es gelöst werden kann, aber ich frage mich, ob es ein bequemer Weg, um dieses Problem zu lösen, wie ich später mehr Werke tun müssen, basierend auf diese Frage. Vielen Dank!
@rawr Sie lassen mich "rapply" kommen, danke! – lightsnail
@rawr - das sollte wirklich die Antwort hier sein - es ist generisch und erweiterbar – thelatemail