在R语言的dplyr包中,你可以使用mutate()
函数结合case_when()
函数来根据两个条件将值替换为NA(Not Available)。以下是一个示例代码:
library(dplyr)
# 创建一个示例数据框
df <- data.frame(
A = c(1, 2, 3, 4, 5),
B = c(10, 20, 30, 40, 50),
C = c(100, 200, 300, 400, 500)
)
# 根据条件将值替换为NA
df <- df %>%
mutate(
A = case_when(
B > 20 & C < 400 ~ NA_real_, # 如果B大于20且C小于400,则将A的值替换为NA
TRUE ~ A # 其他情况保持A的原值
)
)
print(df)
在这个例子中,我们创建了一个包含三列(A、B、C)的数据框df
。然后,我们使用mutate()
函数和case_when()
函数来检查每一行的B列和C列的值。如果B列的值大于20且C列的值小于400,那么A列的对应值就会被替换为NA。TRUE ~ A
这一部分确保了如果不满足上述条件,A列的值保持不变。
输出结果将是:
A B C
1 1 10 100
2 2 20 200
3 NA 30 300
4 4 40 400
5 5 50 500
可以看到,只有第三行的A列值被替换成了NA,因为它是唯一B列值大于20且C列值小于400的行。
参考链接:
领取专属 10元无门槛券
手把手带您无忧上云