根据另一列中的条件替换列中的值
我有一个数据框,其中“阈值”列基于前 4 列中的值。但是,如果热点列中有“是”,我想将阈值替换为“高”。因此,如果数据框当前看起来像这样:
| CNV.增益 | 放大 | 纯合.缺失.频率 | 杂合.缺失.频率 | 热点 | 临界点 |
|---|---|---|---|---|---|
| 3 | 5 | 10 | 0 | 是的 | 低的 |
| 0 | 0 | 11 | 8 | 不 | 中等的 |
| 7 | 16 | 25 | 0 | 不 | 高的 |
回答
您可以使用mutate和 相应case_when地替换值。
long_fused %>% mutate(
Threshold = case_when(
Hotspot == "Yes" ~ "High",
Hotspot != "Yes" ~ Threshold
)
)
编辑:与@Connor 关于约定的简短讨论,以及解决此类问题的一般方法使我进行了此编辑并修复了一个错字!
long_fused %>% mutate(
Threshold = case_when(
Hotspot == "Yes" ~ "High",
TRUE ~ Threshold
)
)
使用TRUE ~ Threshold.