提问人:Antonio 提问时间:9/22/2023 最后编辑:M--Antonio 更新时间:9/22/2023 访问量:28
如果第二列与第一列匹配,如何使第二列为空?[复制]
How to make second column blank if it matches the first? [duplicate]
问:
这个问题在这里已经有答案了:
如果 R 中的两列匹配,则替换值 (2 个答案)
比较 R 中的列并替换值 (2 个答案)
比较一个数据帧中的两对列以检测不匹配,并在同一行中显示另一列的值 (2 个答案)
如果两列的值相等,则将结果列的值更改为 NA,如果不是,则保留为结果列的原始值 - 使用 R (2 个答案)
2个月前关闭。
新列 | 新列2 |
---|---|
单元格 A | 单元格 A |
单元格 3 | 单元格 4 |
单元格 X | 单元格 X |
如何使这个顶级示例变成:
新列 | 新列2 |
---|---|
单元格 A | 那 |
单元格 3 | 单元格 4 |
单元格 X | 那 |
另外,是否可以返回可以迭代的向量/列表?在你们的帮助下,我可能会很快填补空白。
例如
c(1,3)
我知道这是行不通的,因为代码本质上是问“整个列是否匹配?
我猜它需要一个 for 循环来回答这个问题。
ifelse(all(DATA$newcolumn == DATA$newcolumn2), DATA$newcolumn2 = " ", DATA$newcolumn)
答:
2赞
jay.sf
9/22/2023
#1
在 中使用。`==`
Reduce
(df <- within(df, newcolumn2[Reduce(`==`, df)] <- NA))
# newcolumn newcolumn2
# 1 Cell A <NA>
# 2 Cell 3 Cell 4
# 3 Cell X <NA>
数据
df <- structure(list(newcolumn = c("Cell A", "Cell 3", "Cell X"), newcolumn2 = c("Cell A",
"Cell 4", "Cell X")), class = "data.frame", row.names = c(NA,
-3L))
评论
DATA$newcolumn2 = ifelse(DATA$newcolumn2 == DATA$newcolumn, NA, DATA$newcolumn2)
?