首页 > 解决方案 > 替换变量

问题描述

如果这对这个社区来说太基本了,请提前道歉。

我有一个像这里所附的那样的数据框。我想告诉 R 这样做:B4 列中每个缺失变量(NA)的 B1 + B2 /2,然后使用答案替换那些缺失变量(NA)。

在此处输入图像描述

任何建议将被认真考虑。

谢谢

标签: r

解决方案


NA为's创建一个索引B4并使用该索引来分配公式的结果。

i <- is.na(df1$B4)
df1$B4[i] <- with(df1[i, ], B1 + B2/2)
df1
#  B1 B2 B3 B4
#1  2 NA  5 NA
#2  4  4  9  6
#3  3  6  8  6
#4  6  2 NA 10
#5  4  6  2 12
#6  2  6  3 14
#7  1  1  1  3
#8  1  3  6  6
#9 NA  7 NA  2

数据dput格式

df1 <-
structure(list(B1 = c(2, 4, 3, 6, 4, 2, 1, 1, NA), 
B2 = c(NA, 4, 6, 2, 6, 6, 1, 3, 7), B3 = c(5, 9, 8, 
NA, 2, 3, 1, 6, NA), B4 = c(NA, 6, NA, 10, 12, 14, 3, 
6, 2)), class = "data.frame", row.names = c(NA, -9L))

推荐阅读