【发布时间】:2021-11-08 17:21:24
【问题描述】:
我有一个这样的数据框:
df <- data.frame(
Metric = c('WI', NA, 'MN', NA, 'CO', NA),
Eval = c('WI', NA, 'AK', NA, 'CO', NA),
colA = c(30, 'ABC', 45, 'DEF', 2, 'XYZ'),
colB = c(25, 'BEC', 23, 'FED', 50, 'HIJ')
)
我想评估 Metric 列和 Eval 列是否相等,如果相等,则用 NA 填充 Metric 列右侧的所有内容,以便结果如下所示:
df_desired <- data.frame(
Metric = c('WI', NA, 'MN', NA, 'CO', NA),
Eval = c(NA, NA, 'AK', NA, NA, NA),
colA = c(NA, 'ABC', 45, 'DEF', NA, 'XYZ'),
colB = c(NA, 'BEC', 23, 'FED', NA, 'HIJ')
)
使用 R 执行此操作的最佳方法是什么,最好使用 tidyverse 函数?我尝试使用mutate/across,但在这里定义条件让我失望。
【问题讨论】: