r - 有条件地替换 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

关于r - 有条件地替换 R 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67108357/

相关文章:

r - 使用 R 对面板数据中横截面单位的值求和

r - 使用R在 map 中绘制电子邮件流

R seq 函数产生错误的结果

regex - R获取子字符串和正则表达式?

r - 将 fun arg/省略号中的所有内容折叠成字符串

如果任何值为非正数,则将行替换为 NA

r - 作为具有与原始向量相同的顺序/长度的向量,最有效的方法来返回向量在因子水平内的秩?

r - 如何根据变量名动态创建 case_when() 表达式?

r - data.table 的用户指定属性被删除

R:+=(加等于)和++(加加)等价于c++/c#/java等?