一個是包含列表清單:提取塔它是由清單
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
我想提取所有對象的拳頭列。我們知道如果列表是由矩陣組成的,我們可以使用「Map」函數來解決這個問題,但是現在列表是由列表組成的,我們不能用「Map」來解決這個問題,我該怎麼辦這很容易?
我用下面的代碼來解決這個問題:
sapply(1:length(a), function(x) {Map(function(y) y[,1],a[[x]])})
它是可以解決的,但我不知道是否有解決這個問題的一個更方便的方法,因爲我需要做的後來基於更多的作品這個問題。謝謝!
@rawr你讓我碰到「rapply」,謝謝! – lightsnail
@rawr - 這真的應該是這裏的答案 - 它是通用和可擴展的 – thelatemail