2015-09-23 103 views
2

我有值的向量:獲取平均向量每10個步驟中的R

[1] 0 0 4 1 0 0 -1 1 1 0 -1 0 0 -2 0 0 
[17] 1 2 0 2 0 1 1 1 0 1 -1 0 0 0 0 0 
[33] 0 2 0 4 -2 0 0 -1 1 0 0 0 -1 -2 2 0 
[49] -1 0 -1 0 3 0 0 -1 1 0 0 0 1 -3 0 -1 
[65] 0 -1 0 1 1 0 1 -2 1 1 0 0 -1 -2 0 0 
[81] 0 2 0 0 1 1 0 0 0 -1 -2 0 -1 -1 -1 -1 
[97] 1 1 0 1 

我想獲得的平均每10級(以前的10個號碼的平均值在這一點上) ,並由此產生具有這些平均值的新矢量。由於原始矢量中有100個值,因此這將產生一個長度爲10的新矢量(10個平均值)。

我知道我可以用得到的各10點訪問次數:

result <- my_vector[seq(1, length(my_vector), 10)] 

但我需要10個前次點的平均值,在這一步,不只是本身數量。

+3

'rowMeans(矩陣(X,NcoI位= 10,byrow = TRUE))' –

+2

甚至只是'colMeans(矩陣(X,NcoI位= 10))' – Molx

+0

美麗。多謝你們, – Cybernetic

回答

2
colMeans(matrix(x, 10)) 
[1] 0.4 0.7 0.8 0.2 0.0 0.4 -0.4 -0.4 -0.7 0.1 

我們轉向所述載體引入矩陣的尺寸符合期望的長度,並使用colMeans找到每個組的平均值。我們也可以使用rowMeans,但由於默認情況下矩陣是按列方式填充的,所以我們必須添加另一個參數byrow=TRUE,並且可能會因爲所有額外的輸入而傷害自己。

我們可以通過明確找到幾個子集化向量的均值來測試我們的答案。

#Test 
mean(x[1:10]) 
[1] 0.4 
mean(x[11:20]) 
[1] 0.7 

數據

x <- c(0, 1, 0, -1, 0, 0, 0, 2, 2, 0, -1, 2, 4, 0, 0, -1, 0, 0, 1, 
2, 4, 0, 1, 0, 0, 0, -2, 3, 1, 1, 0, 1, 0, 0, 0, 1, -1, 1, 0, 
0, 1, 0, 1, 1, -1, -1, -2, 0, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 
-1, -1, -1, 0, 0, 0, -2, 0, 0, 0, 0, 0, 0, 0, 0, -1, 1, -1, -1, 
-2, 0, -2, -3, -2, -1, 0, 0, 2, 0, 0, -1, 0, 0, 0, -1, 0, -1, 
1, 1, 0, 1)