我正在嘗試計算數據框中每行的平均值。每行都有零,我想從計算中排除這些。我不想刪除整行,但只刪除零,並計算每行中的剩餘值的平均值。如果行的結果全部爲零,則結果應爲零。如何計算行的均值,同時排除數據幀中行的零值
10
A
回答
17
如何
nzmean <- function(x) {
if (all(x==0)) 0 else mean(x[x!=0])
}
apply(mydata,1,nzmean)
?
它發生,我認爲這可能是輕微快做
nzmean <- function(x) {
zvals <- x==0
if (all(zvals)) 0 else mean(x[!zvals])
}
即儘量避免這樣做的x
零比較兩次。
11
或者你可以做的是分配NA
到零,這實際上是你想要做什麼。一些樣本數據:
spam = matrix(runif(100), 10, 10)
spam[1,2] = 0
spam[4,3] = 0
spam[10,] = 0
spam[spam == 0] <- NA
,並使用rowMeans
的ifelse
是檢查是完全NA
行。該na.rm
說法是很重要的位置:
mean_values = rowMeans(spam, na.rm = TRUE)
mean_values = ifelse(is.na(mean_values), 0, mean_values)
+2
這可能是(?)比我的解決方案快了非常大的數據集。 –
+1
我也喜歡在概念上使用NA,它清楚地表明0不是有效的數字。 –
相關問題
- 1. 如何獲得非零值的數量,同時計算平均
- 2. 如何計算python數據幀中的平均值
- 3. 計算數據幀中確切小時的間隔平均值
- 4. 如何計算熊貓數據框中的行平均值?
- 5. 計算非零值的平均值
- 6. 如何計算與楠大熊貓數據幀的平均值
- 7. dplyr的刪除函數?計算R中數據幀中幾列的平均值
- 8. 計算運行平均值
- 9. 如何計算多維數組中每一行的平均值
- 10. 如何計算非零值的加權平均值?
- 11. 在數據幀計算平均值和總和值
- 12. Matlab - 計算非NaN幀的平均值
- 13. 計算使用熊貓的時間序列數據的平均值數據幀
- 14. 如何根據另一個數據幀的值刪除數據幀中的行
- 15. 在MATLAB中以小時計算的平均數據平均值
- 16. 如何計算不同列表中的值的均值
- 17. 在數據幀行中計算Fisher的精確測試p值
- 18. 如何計算某些行不存在時的平均值?
- 19. 如何有效地計算飛行中的平均值(移動平均值)?
- 20. 計算行數並提取浮點值並計算值的平均值
- 21. 排除包含數據幀中連續零的行
- 22. 大熊貓的計算行平均值
- 23. 計算平均值較大的行
- 24. 計算行間隔的平均值
- 25. 在R中的數據幀的列中計算不同的值
- 26. 如何根據django中的計算值進行排序
- 27. 獲取數據幀中行的平均值大於或等於零
- 28. 如何計算MS reportviewer/rdlc中的平均計算平均值?
- 29. 刪除零行的數據幀
- 30. 如何計算數據幀的列中出現值的次數?
+1快。我會刪除我的答案。 – Andrie
@Ben Bolker感謝您的幫助.. – Gongon
如果回答你的問題,你可以在複選標記單擊以接受的答案... –