小编San*_*dra的帖子

dplyr 根据行条件替换列中的特定情况,保持其他情况不变

如何根据另一列中的行在一列中应用两个(或更多)替换案例?例如,给出下一个数据帧

\n
data <- data.frame(x1 = c(1, 2, 3, 2, 4, 1, 2, 3, 4, 2),  \n                     x2 = c(4, 36, 45, 22, 36, 1, 11, 12, 31, 22))\n
Run Code Online (Sandbox Code Playgroud)\n

我想申请2个条件:

\n
    \n
  • 如果 X1 = 1 则将 X2 中相应的值替换为 YES
  • \n
  • 如果X1 = 2则将X2中对应的值替换为NO
  • \n
  • 保持其他所有值不变,保留 X2 中的原始值
  • \n
\n

我想为此使用“replace”函数和“case_when”,但我没有找到解决方案。然后我使用了“mutate”选项,但它替换了我想不被 NA 影响的值。\n(我想使用 case_when 或类似的方法来优化我的脚本,这里我只是提供一个示例,但我可能需要替换许多情况下,我不想在我的管道中多次使用“替换”功能:))

\n

我用了下一个:

\n
data %>%\n  mutate(x2 = case_when(x1 %in% 1 ~   \xe2\x80\x9cYES\xe2\x80\x9d,\n                        x1 %in% 2 ~   \xe2\x80\x9cNO\xe2\x80\x9d))\n
Run Code Online (Sandbox Code Playgroud)\n

我得到了什么:

\n

在此输入图像描述

\n

我该如何解决这个问题?先感谢您

\n

S …

replace r dplyr

5
推荐指数
1
解决办法
3981
查看次数

标签 统计

dplyr ×1

r ×1

replace ×1