首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何根据r dplyr中的两个条件将值替换为NA?

在R语言的dplyr包中,你可以使用mutate()函数结合case_when()函数来根据两个条件将值替换为NA(Not Available)。以下是一个示例代码:

代码语言:txt
复制
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列的值保持不变。

输出结果将是:

代码语言:txt
复制
   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的行。

参考链接:

  • dplyr官方文档:https://dplyr.tidyverse.org/
  • case_when函数说明:https://dplyr.tidyverse.org/reference/case_when.html
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 数据处理的R包

    整理数据的本质可以归纳为:对数据进行分割(Split),然后应用(Apply)某些处理函数,最后将结果重新组合(Combine)成所需的格式返回,简单描述为:Split - Apply - Combine。plyr包是Hadley Wickham为解决split – apply – combine问题而写的一个包。使用plyr包可以针对不同的数据类型,在一个函数内同时完成split – apply – combine三个步骤。plyr包的主函数是**ply形式的,函数名的第一个字符代表输入数据的类型,第二个字符代表输出数据的类型,其中第一个字符可以是(d、l、a),第二个字母可以是(d、l、a、_ ),不同的字母表示不同的数据格式,d表示数据框格式,l表示列表,a表示数组,_则表示没有输出。

    02
    领券