【发布时间】: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
我有以下代码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
当k = 25 时,假设你的if 条件为真(k 小于 100 但大于 0)。但是 25 + (-50) 是 -25。但是 25 + 150 = 175,一个正指数。子集时不能混合正负索引。
我想我应该补充一点,你不能这样做的部分原因是正索引和负索引具有不同的含义。 x[3] 表示您要选择第三个元素,而x[-3] 表示您要省略第三个元素。如果您在选择其他元素的同时开始删除元素,那么跟踪哪些索引引用了哪些元素会让人感到困惑。
【讨论】: