使用行均值查找并替换缺失值

Bri*_*ian 9 r mean apply dataframe

我有一个带有NA的数据框,我想用行方式替换NA

c1 = c(1,2,3,NA)
c2 = c(3,1,NA,3)
c3 = c(2,1,3,1)

df = data.frame(c1,c2,c3)

> df
  c1 c2 c3
1  1  3  2
2  2  1  1
3  3 NA  3
4 NA  3  1
Run Code Online (Sandbox Code Playgroud)

以便

> df
  c1 c2 c3
1  1  3  2
2  2  1  1
3  3  3  3
4  2  3  1
Run Code Online (Sandbox Code Playgroud)

Jil*_*ina 10

非常类似于@ baptiste的回答

> ind <- which(is.na(df), arr.ind=TRUE)
> df[ind] <- rowMeans(df,  na.rm = TRUE)[ind[,1]]
Run Code Online (Sandbox Code Playgroud)