使用行均值替换数据框中的缺失值

Roy*_*Roy 1 r

我有一个数据框,条目从0到5运行,其中0表示缺少条目.我想用每行的平均值重新删除缺少的条目.应仅根据未缺失的值计算平均值.我怎么做?

例如,行:

[1] 1 2 4 0 3
Run Code Online (Sandbox Code Playgroud)

会变成:

[1] 1.0 2.0 4.0 2.5 3.0
Run Code Online (Sandbox Code Playgroud)

Rol*_*and 5

set.seed(42)
m <- matrix(sample(0:5,15,TRUE),ncol=5)

#      [,1] [,2] [,3] [,4] [,5]
# [1,]    5    4    4    4    5
# [2,]    5    3    0    2    1
# [3,]    1    3    3    4    2

t(apply(m,1,function(x) {x[x==0] <- mean(x[x!=0]); x}))

#      [,1] [,2] [,3] [,4] [,5]
# [1,]    5    4 4.00    4    5
# [2,]    5    3 2.75    2    1
# [3,]    1    3 3.00    4    2
Run Code Online (Sandbox Code Playgroud)