首页 > 解决方案 > 在 R 中为满足条件的值添加前缀

问题描述

所以我一直在寻找与这个主题类似的东西。我正在尝试为满足另一列标准的数据值添加前缀。

我正在使用dplyrand data.table

例如,我有这个数据框df1,它有这些列。

Program | Violation
-------------------
CACF    |  SV-300
CACF    |  SV-101
DCH     |  SV-205
DCH     |  SV-302
CACF    |  SV-403
DCH     |  SV-302

我想在 Violation ID 号前面添加 DCH- 而不是改变另一列。我想对现有列执行此操作,以便我现有的列df1看起来像这样。

Program | Violation
-------------------
CACF    |  SV-300
CACF    |  SV-101
DCH     |  DCH-SV-205
DCH     |  DCH-SV-302
CACF    |  SV-403
DCH     |  DCH-SV-302

我一直在尝试 paste0 功能,但无济于事。

df1$Violation = paste0("DCH-"), df1$Program == "DCH"

我对 R 还比较陌生,并且一直在谷歌搜索并四处寻找如何做到这一点。我确信它超级简单,但我找不到与我正在寻找的类似概念的线程。有的话请给个链接。

标签: rdplyrdata.table

解决方案


我们可以用case_when

library(dplyr)
df1 %>%
   mutate(Violation = case_when(Program == "DCH" ~ paste0("DCH-", Violation), 
                         TRUE ~ Violation))

推荐阅读