3

count.array と呼ばれる、入力する必要があるカウントの 1 次元ベクトルがあります。sample.array (count 配列より短くても長くてもかまいません) を生成しますが、すべての要素が count 配列の適切なインデックス内にあります。Rで各要素が何回発生するかを合計してcount配列に入れる最良の方法は何ですか.

私はこれを 1 つの for ループ (sample.array を通過し、値を読み取り、インデックスに 1 を追加する) で実行できることを認識していますが、おそらくよりスマートな R の方法でそれを行うことができますか?

これが実際の例です:

count.array <- matrix(data = 0, nrow = 1, ncol = 10)
sample.array <- matrix(data = c(5,2,4,5,2,4,3,4), nrow = 1, ncol =8)

count.array[1,2] <- 2
count.array[1,3] <- 1
count.array[1,4] <- 3
count.array[1,5] <- 2

count.array
4

1 に答える 1

6

使用できますtable

freq <- table(sample.array)

# sample.array
# 2 3 4 5  <~~ names (use it for indexing)
# 2 1 3 2  <~~ frequency (the values of your count.array)

count.array[1, as.numeric(names(freq))] <- freq

#      [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
# [1,]    0    2    1    3    2    0    0    0    0     0
于 2013-03-10T19:20:50.853 に答える