小编lak*_*ksa的帖子

R有条件的lapply?

我有一个数据框,如

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)

我确信这种问题已被多次回答,但我找不到(或认出)类似的东西.提前致谢.

conditional r lapply dataframe

1
推荐指数
1
解决办法
334
查看次数

标签 统计

conditional ×1

dataframe ×1

lapply ×1

r ×1