如何根据另一列中的行在一列中应用两个(或更多)替换案例?例如,给出下一个数据帧
\ndata <- 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))\nRun Code Online (Sandbox Code Playgroud)\n我想申请2个条件:
\n我想为此使用“replace”函数和“case_when”,但我没有找到解决方案。然后我使用了“mutate”选项,但它替换了我想不被 NA 影响的值。\n(我想使用 case_when 或类似的方法来优化我的脚本,这里我只是提供一个示例,但我可能需要替换许多情况下,我不想在我的管道中多次使用“替换”功能:))
\n我用了下一个:
\ndata %>%\n mutate(x2 = case_when(x1 %in% 1 ~ \xe2\x80\x9cYES\xe2\x80\x9d,\n x1 %in% 2 ~ \xe2\x80\x9cNO\xe2\x80\x9d))\nRun Code Online (Sandbox Code Playgroud)\n我得到了什么:
\n\n我该如何解决这个问题?先感谢您
\nS
\n你几乎已经拥有了。
对于没有条件且希望保持原样的行,您可以执行以下操作:
data %>%
mutate(x2 = case_when(x1 %in% 1 ~ 'YES',
x1 %in% 2 ~ 'NO',
TRUE ~ as.character (x2)))
x1 x2
1 1 YES
2 2 NO
3 3 45
4 2 NO
5 4 36
6 1 YES
7 2 NO
8 3 12
9 4 31
10 2 NO
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3981 次 |
| 最近记录: |