按行平均而不考虑负值

时间:2012-05-14 16:43:15

标签: r selection average

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

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

并且您希望按行计算平均值而不考虑这些负值

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

=> mean(2row)=(4 + 1)/ 2

有人可以在R中给我命令吗?

非常感谢

1 个答案:

答案 0 :(得分:7)

使用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]))