【问题标题】:Negative subscripts error in RR中的负下标错误
【发布时间】:2011-09-14 00:13:26
【问题描述】:

我有以下代码sn-p:

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

还有以下错误:

j[k + seq(-50, 150)]

为什么我已经设置了条件,如果下标可以 遇到负值?

【问题讨论】:

    标签: r


    【解决方案1】:

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

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

    【讨论】:

    • 很好的答案。我想知道:为什么 OP 一开始就试图以这种方式定义 j 的索引?例如,如果 k 一开始是 -10,事情会更丑陋。他需要弄清楚他期望的 k 值范围并适当地调整索引偏移量。
    猜你喜欢
    • 2015-04-03
    • 2022-01-16
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-10-27
    • 2015-02-11
    • 1970-01-01
    相关资源
    最近更新 更多