2

次の形式の離散値が増加するベクトルがあります。

a<-c(1,2,5,7,8,9,10,15,19...)

a の値を実行する for ループを実行したいと思います。

私が試してみました:

for (i in 1:a)

しかし、これは欠損値があることを無視し、3、4 なども調べます。

私も試しました:

for (i in 1:unique(a))

しかし、これにより次のエラーが発生します。

In 1:unique(a) :
 numerical expression has 1350 elements: only the first used
4

2 に答える 2

2

ティムはこれについて正しい方法を指摘しました。ただし、これまでの試みに基づいて、チェックアウトし?seq?seq_along

1:a1:unique(a)どちらもベクトルa(または) の最初の要素を取り、 それunique(a)をシーケンスの「上限」として使用します。a(の最初の要素を整数に強制できる限り)。

例えば

  a <- c("7", "hello", "world")
  1:a   # same as 1:7
  # [1] 1 2 3 4 5 6 7

  a <- c("hello", "7", "world")
  1:a   # same as 1:"hello"
  # ERROR

を使用する場合と同様seq_along(a)に、a の各要素へのインデックスが提供されます。(そのインデックスを他の計算に使用する必要がある場合に便利です)

 for (i in seq_along(a))
    cat(a[[i]], "\t is the", i,"element.\n")

 # hello     is the 1 element.
 # 7         is the 2 element.
 # world     is the 3 element.
于 2012-12-20T19:21:41.363 に答える