【问题标题】:how to pick up the last (or whatever) items of all vectors inside a list?如何获取列表中所有向量的最后(或其他)项目?
【发布时间】:2011-04-30 15:45:27
【问题描述】:

我这里有一个虚拟列表:

> 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)来保存列表(即z)内所有向量(即x,y)的最后一项(即“c”,“f”),我该怎么做那个?

谢谢!

【问题讨论】:

    标签: list r


    【解决方案1】:
    sapply(z, tail, n = 1)
    

    【讨论】:

      【解决方案2】:

      您还可以使用像 [] 这样的运算符实际上是带有方便符号的函数这一事实。 Richie Cotton 的答案可以写成

      > "["(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"
      

      【讨论】:

        【解决方案3】:

        使用mapply的另一种方式:

        mapply("[", z, lapply(z, length))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-01-14
          • 1970-01-01
          • 1970-01-01
          • 2021-02-15
          • 2023-02-03
          • 1970-01-01
          相关资源
          最近更新 更多