方便索引到数组的结尾

时间:2014-07-18 20:00:12

标签: r indexing

所以我来自Python,我可以通过省略结束索引来索引直到数组的结尾。 (注意Python是0索引的):

In [1]: x = range(10)

In [2]: x
Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

In [3]: x[4:]
Out[3]: [4, 5, 6, 7, 8, 9]

In [4]: x[-6:]
Out[4]: [4, 5, 6, 7, 8, 9]

In [5]: x[-1]
Out[5]: 9

此外,负数指数从数组末尾开始。在R中,到目前为止,我发现我需要做这样的事情:

> x <- 0:9
> x[5:length(x)]
[1] 4 5 6 7 8 9

等等。长度(x)是否有任何语法糖? (也许类似于MATLAB使用的end。)

2 个答案:

答案 0 :(得分:2)

您可以使用tail功能而不是索引。

在下文中,返回向量x的最后6个元素。 6是tail(和head的默认返回长度,如下所示),第二个参数更改了它。因此,如果您要编写tail(x, 5),那么将返回最后的5个元素。

> x <- 0:9
> tail(x)
# [1] 4 5 6 7 8 9
> tail(x, 5)
# [1] 5 6 7 8 9

类似地,有一个head函数用于查看前几个元素,它们以相同的方式运行。

> head(x)
# [1] 0 1 2 3 4 5
> head(x, 5)
# [1] 0 1 2 3 4

答案 1 :(得分:0)

逻辑索引是一种方法。如上所述(但没有证明头部或尾部的第二个参数):

> x <- 1:10
> head(x,-3)
[1] 1 2 3 4 5 6 7
> tail(x,-3)
[1]  4  5  6  7  8  9 10
> x[x>=4]
[1]  4  5  6  7  8  9 10

不允许混合使用正负指数。