2

我需要为我的数据集的单个单位计算变量之间的平均值。但是,在这样做的时候,我不需要考虑一些价值观。为了更好地解释,假设有两个单位和三个变量:

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

并且您想按行计算平均值而不考虑那些负值

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

=> 平均(2 行)= (4+1)/2

谁能给我命令在R中做到这一点?

太感谢了

4

1 回答 1

9

使用 apply 函数取每一行的平均值,规定值必须大于 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]))
于 2012-05-14T16:47:05.047 回答