r - 有条件地替换 R 中的值

我有一个关于 R 的问题。我有一个数据集,我想根据彼此相邻的列的值更改其单元格

Data <- tibble(a = 1:5,  
b = c("G","H","I","J","K"),
c = c("G","H","J","I","J"))

我想更改字符。如果 b 和 c 具有相同的字符,则为 NA。

期望的输出

Data <- tibble(a = 1:5,  
    b = c("NA","NA","I","J","K"),
    c = c("NA","NA","J","I","J"))

非常感谢您的提前帮助。

最佳答案

library(data.table)
setDT(Data)[b == c, c("b", "c") := NA]
#    a    b    c
# 1: 1 <NA> <NA>
# 2: 2 <NA> <NA>
# 3: 3    I    J
# 4: 4    J    I
# 5: 5    K    J

https://stackoverflow.com/questions/67108357/

相关文章:

python - 避免嵌套 .apply()

string - 为什么 String::from(&str) 和 &str.to_string()

awk - 拆分但保留分隔符很少

design-patterns - 使用字符串与枚举作为工厂方法的参数?

r - 在 R 中的特定值之后将每行的值设置为 NA

c++ - 为什么 sizeof 运算符对数组产生不同的结果

javascript - jQuery 获取所有 值的数组

unix - Linux : How to AWK to find maximums in ever

scala - 在范围内显示时未找到隐式

css - 在sass中混合两种颜色