2010-10-26 30 views
1

我有一個虛擬目錄的位置:如何拾取列表中所有向量的最後(或其他)項目?

> 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),我該怎麼做?

謝謝!

回答

9
sapply(z, tail, n = 1) 
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" 
+0

這將工作僅在'所有矢量z'長度相等。 – Marek 2010-10-26 12:57:49

0

使用mapply另一種方式:

mapply("[", z, lapply(z, length)) 
相關問題