所以我来自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
。)
答案 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
不允许混合使用正负指数。