a是字符串的向量。如果我使用非-1的值尝试获取列表的值,则会收到错误消息。 使用:
a[1:(length(a)-2)]
解决了这个问题。
a[1:length(a)]
[1] "ADE" "DEZ" "dfeefe"
a[1:length(a)-1]
[1] "ADE" "DEZ"
> a[1:length(a)-2] Error in a[1:length(a) - 2] :
only 0's may be mixed with negative subscripts
为什么错了?
答案 0 :(得分:2)
您的问题是运算符优先级之一。 :
的优先级高于-
。
a[1:length(a)-2]
的意思是a[(1:length(a))-2]
,而不是您想要的a[1:(length(a)-2)]
在您的情况下,a
的长度似乎为3,在这种情况下,1:length(a)
是向量1 2 3
,而1:length(a) - 2
是向量-1 0 1
。 / p>
而且,即使a[1:length(a)-1]
起作用了,但您怎么想也没起作用。您计算的是a[0:2]
(只是忽略了第一个索引0
),而不仅仅是a[1:2]
。