2012-05-14 92 views
1

我需要爲我的數據集的單個單位計算變量之間的平均值。 但是,雖然這樣做,我需要不考慮一些價值。 爲了更好地解釋,認爲這樣有兩個單元和三個變量:平均每行不考慮負值

 V1 V2  V3 
[1] 3  -2  4 
[2] -1  4  1 

,你想不考慮那些負值通過行,計算平均值:

=>平均值( 1row)=(3 + 4)/ 2

=>平均值(2ROW)=(4 + 1)/ 2

任何人都可以請給我的命令做,在R'

謝謝你這麼多

回答

7

使用應用函數取每一行的平均值,並規定,該值必須大於0

df=data.frame(V1=c(3,-1),V2=c(-2,4),V3=c(4,1));df 

apply(df,1,function(x) mean(x[x>0])) 
+4

另一個解決方案是'是。 na(df)< - df <= 0; rowMeans(df,na.rm = TRUE)'。 –

+0

'NA'是你的朋友:-)。還要注意的是,如果您希望在「所需」子集上執行其他操作,Joshua的方法會爲您留下一個沒有負值的數據框。 –