1. ホーム
  2. r

[解決済み] R: Err: 0のみ負の添え字と混在可

2022-02-08 08:19:19

質問

どうやら私は、正と負のインデックスを持つ変数をサブセットしようとしているようです。しかし、コードをデバッグしても、なぜR studioが私が負のサブセットと正のサブセットを混合していると解釈するのか分かりません。

以下は、そのコードの部分です。

 if (stepcount > 192 | sum(na.omit(ppt[i-193:i-1])) < 0.6) {statement}

エラーです。

Error in ppt[i - 193:i - 1] : 
  only 0's may be mixed with negative subscripts

デバッグしてみると、この時点のiの値は3572で、これはつまり ppt[i - 193:i - 1]

もしそれが役に立つなら、もう少し情報を:私が1つの代わりに2つの"or"演算子を使用する場合、例えば。

if (stepcount > 192 || sum(na.omit(ppt[i-193:i-1])) < 0.6) {statement}

私はまだ同じ err を得るが、私は 3603 である。正直なところ、私はその違いが分かりませんが、もしかしたら問題を明確にするために何らかの情報を伝えているのかもしれません。

これはおそらく私が気づいていない単純なことで、再現性のあるコードは必要ないだろうと思います(大規模なデータを分析するには長すぎるコードなので。しかし、もし皆さんが必要だと思われるなら、私はそれを投稿することができます。

解決方法は?

Richard Scrivenが提案し、jlhowardが説明したように、解決策は、サブセットを括弧で囲むことです。

if (stepcount > 192 | sum(na.omit(ppt[(i-193):(i-1)])) < 0.6) {statement}

> k <- seq(from=1,to=1000,by=2)
> i <- 195
> k[(i - 193):(i - 1)]
  [1]   3   5   7   9  11  13  15  17  19  21  23  25  27  29
 [15]  31  33  35  37  39  41  43  45  47  49  51  53  55 ...