2013-03-10 132 views
3

我有一個需要填充的計數的1維向量,稱爲count.array。我生成sample.array(可以比count數組更短或更長),但每個元素都在count數組的適當索引內。 R中最好的方式是總結每個元素出現的次數並將它們放入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 

回答

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 
+0

(+1)5秒太慢了:) – 2013-03-10 19:22:40