我有一个数据框,如
a = c(2,NA,3,4)
b = c(NA,3,NA,NA)
c= c(5,NA,7,9)
test = data.frame(a,b,c)
> test
a b c
1 2 NA 5
2 NA 3 NA
3 3 NA 7
4 4 NA 9
Run Code Online (Sandbox Code Playgroud)
我想在test $ b中只填写NA值,测试$ a的平均值和该行的test $ c.结果应该是
a b c
1 2 3.5 5
2 NA 3 NA
3 3 5 7
4 4 6.5 9
Run Code Online (Sandbox Code Playgroud)
我已经尝试了申请家庭,但没有得到任何地方.想避免for循环因为我被告知我应该尽量避免for循环.
用英语我想说,
if test$b[i] == NA, test$b[i] = (test$a[i] + test$b[i])/2
else leave test$b[i] as it is.
Run Code Online (Sandbox Code Playgroud)
我确信这种问题已被多次回答,但我找不到(或认出)类似的东西.提前致谢.