7

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

然后像

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)]

有更短的方法吗?

4

2 回答 2

9

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

> tail(a, 1)
[1] 3

并不是说那真的有资格更短。

对于第二个例子

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

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

于 2012-08-14T11:04:22.453 回答
6

用于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
于 2012-08-14T11:02:41.503 回答