1

を実行しようとしている大きなデータフレームfor loopがありますが、最初にすべての異なる観測値を取得する必要があります。私が現在アプローチしようとしているプロセスは次のとおりです。

  1. 観測のリスト/ベクトル/データフレームを作成します
  2. で各観測を使用しますfor loop

これが私がそれに取り組んだ方法です:

いくつかのデータを生成します。

x <- gl(12,5)

私が探している結果は、すべての異なる観測のリストです。

1 2 3 4 5 6 7 8 9 10 11 12

を作成してdata frameから、次のように数値列を削除できます。

list <- data.frame(table(x))

list[,2] <- NULL

print(list)

このリスト/ベクター/データフレームから、私は次のfor loopように実行します:

for (i in list) print(i)

のリストを取得するには、より効率的な方法が必要for loopです。誰かが提案できますか?

4

1 に答える 1

4

いくつかのオプションが含まれます:

R> unique(x)
 [1] 1  2  3  4  5  6  7  8  9  10 11 12
Levels: 1 2 3 4 5 6 7 8 9 10 11 12
R> levels(x)
 [1] "1"  "2"  "3"  "4"  "5"  "6"  "7"  "8"  "9"  "10" "11" "12"
R> as.numeric(levels(x))
 [1]  1  2  3  4  5  6  7  8  9 10 11 12

levels()グループ化が必要な場合は、最も論理的で適切なものです。

さて、これが本当に必要かどうかは別の質問です。?splitファクター(オーバーできる)に基づいてlapply()、または?aggregateとりわけ、データフレームを分割できるものを確認してください。この種のものに非常に人気があるように見えるplyrパッケージもあります。

于 2012-10-17T19:41:06.117 に答える