我有一个数据框,条目从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)
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)