我有一個虛擬目錄的位置:如何拾取列表中所有向量的最後(或其他)項目?
> x <- c("a", "b", "c")
> y <- c("d", "e", "f")
> z <- list(x,y)
> z
[[1]]
[1] "a" "b" "c"
[[2]]
[1] "d" "e" "f"
如果我想分配另一個變量(如W)舉行的最後一個項目的所有向量(即「C」,「F」)(即X,Y )在列表中(即z),我該怎麼做?
謝謝!
我有一個虛擬目錄的位置:如何拾取列表中所有向量的最後(或其他)項目?
> x <- c("a", "b", "c")
> y <- c("d", "e", "f")
> z <- list(x,y)
> z
[[1]]
[1] "a" "b" "c"
[[2]]
[1] "d" "e" "f"
如果我想分配另一個變量(如W)舉行的最後一個項目的所有向量(即「C」,「F」)(即X,Y )在列表中(即z),我該怎麼做?
謝謝!
sapply(z, tail, n = 1)
您還可以使用像[]這樣的運算符真的具有方便表示法的函數。然後裏奇棉花的答案可以寫成
> "["(x, 2) # regular style function call
[1] "b"
# thanks Marek: this only works if length(x) is last element for all components
> sapply(z, "[", length(x))
[1] "c" "f"
> sapply(z, "[", c(1, 2))
[,1] [,2]
[1,] "a" "d"
[2,] "b" "e"
使用mapply
另一種方式:
mapply("[", z, lapply(z, length))
這將工作僅在'所有矢量z'長度相等。 – Marek 2010-10-26 12:57:49