R中的负下标错误

时间:2011-09-05 01:02:21

标签: r

我有以下代码段:

if(k<=100 && k>=0 )
{        
    j[k+seq(-50,150)]<-F;
}
else
{
    j[k+seq(-100,100)]<-F;
}

以下错误:

  

j [k + seq(-50,150)]中的错误&lt; - F:只有0可以与负下标混合

为什么我得到这个,即使我已设置条件,如果下标可能 遇到负值?

1 个答案:

答案 0 :(得分:10)

k = 25时,那么您的if条件为真(k小于100但大于0)。但是25 +( - 50)是-25。但是25 + 150 = 175,一个正指数。在子集化时,不能混合正负索引。

我想我应该补充一点,你不能做到这一点的原因是积极和消极的指数有不同的含义。 x[3]表示您要选择第三个​​元素,而x[-3]表示您想要省略第三个​​元素。如果您在选择其他元素的同时开始删除元素,那么跟踪哪些元素引用哪些元素会让人感到困惑。