如何计算r中数据帧中每行非零元素的平均值

如何计算r中数据帧中每行非零元素的平均值,r,rows,mean,R,Rows,Mean,我想计算每行非零元素的平均值。下面是一个示例数据集 data=data.frame(x1=c(8,0,9),x2=c(0,0,10),x3=c(16,10,2)) data x1 x2 x3 8 0 16 0 0 10 9 10 2 预期的结果将是 mean 12 10 7 多谢各位 不是: 我确实尝试过,但它不起作用,因为当我转换为NA值时,平均值将为NA。我们将0替换为NA,并使用rowMeans中的NA.rm参数 rowMeans(replace(data,

我想计算每行非零元素的平均值。下面是一个示例数据集

data=data.frame(x1=c(8,0,9),x2=c(0,0,10),x3=c(16,10,2))
data
x1  x2  x3
8   0   16
0   0   10
9   10  2
预期的结果将是

mean
12
10
 7
多谢各位

不是:


我确实尝试过,但它不起作用,因为当我转换为NA值时,平均值将为NA。

我们
0替换为
NA
,并使用
rowMeans
中的
NA.rm
参数

rowMeans(replace(data, data == 0, NA), na.rm = TRUE)
#[1] 12 10  7

我们
中的“0”替换为
NA
,并使用
rowMeans中的
NA.rm
参数

rowMeans(replace(data, data == 0, NA), na.rm = TRUE)
#[1] 12 10  7

以下是一个简单的解决方案:

apply(data,1,function(x) mean(x[x!=0]))

以下是一个简单的解决方案:

apply(data,1,function(x) mean(x[x!=0]))