【问题标题】:Most efficient way to select ending item of an array?选择数组结尾项的最有效方法?
【发布时间】:2012-08-14 10:59:03
【问题描述】:

我正在寻找最有效的方法(即按下较少的键)来索引数组的最后一个元素。

然后像

a <- c(1,2,3)
n <- length(a)
b <- a[n]

不应该使用,我只想使用一个命令。

在上面的例子中我可以使用

b <- a[length(a)]

但我想知道是否存在更短的东西。

让我想选择一个数组的一部分,比如

a <- seq(from = 1, to = 10, by = 1)
b <- a[3:length(a)]

有没有更短的方法?

【问题讨论】:

    标签: r


    【解决方案1】:

    对于第一种情况,您可以使用:

    > tail(a, 1)
    [1] 3
    

    并不是说那真的可以更短。

    第二个例子

    > tail(a, -2)
    [1]  3  4  5  6  7  8  9 10
    

    但总的来说;不,没有什么比这更短了。 R 没有用于向量或数组末尾的就地运算符或语法糖,从某种意义上说,计算结果是数组的末尾。这就是length() 的用途。

    【讨论】:

      【解决方案2】:

      使用tail() 获取对象的尾部:

      x <- 1:100
      

      默认情况下,tail() 返回 6 个元素...

      tail(x)
      [1]  95  96  97  98  99 100
      

      ...但你可以改变它:

      tail(x, 10)
       [1]  91  92  93  94  95  96  97  98  99 100
      

      同样,有head()来获取第一个元素:

      head(x, 7)
      [1] 1 2 3 4 5 6 7
      

      【讨论】:

      • 有没有一种很好的方法可以在列上进行这项工作? ?tail 说它在 2D 情况下抓取行。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 1970-01-01
      • 2021-03-22
      • 2021-07-30
      • 1970-01-01
      相关资源
      最近更新 更多