15

離散レベルでforループを書くことは可能ですか?

私は次の形式のベクトルを持っています:

a<-c(1,1,1,1,1,3,3,5,11,18 ....1350) 

これは増加するシリーズですが、論理的な順序には従いません。

引数としてlevels(a)を使用してforループを実行したいと思います。

for i in 1:levels(a)

次のエラーが発生します。

In 1:levels_id :
 numerical expression has 1350 elements: only the first used
4

1 に答える 1

28

最初の間違いは、インデックスのループとベクトルの要素のループを混同していることです。

ベクトルの一意の要素をループする場合は、次を使用します。

for(i in unique(a))

それがあなたがやりたかったことだと思います。ただし、別の方法は、一意のベクトルのインデックスをループすることです。

for(i in 1:length(unique(a))){
    this.a <- unique(a)[i]
}

これら2つは同等ですが、2つ目は、現在のインデックスも知ることができます(必要な場合)。

于 2012-12-17T14:47:37.193 に答える