我有一个需要填充的一维计数向量,称为count.array。我生成sample.array(可以比count数组更短或更长)但是每个元素都在count数组的适当索引中。 R中最好的方法是总结每个元素出现的次数并将它们放入计数数组中。
我意识到我可以用一个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
答案 0 :(得分: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