R数据框基于Hotspot列条件替换Threshold列值的问题咨询
实现方案
基础R写法
直接通过逻辑索引赋值即可完成替换:
long_fused$Threshold[long_fused$Hotspot == "Yes"] <- "High"
dplyr包写法
如果你习惯用tidyverse生态的语法,可以用mutate搭配条件判断实现:
library(dplyr) long_fused <- long_fused %>% mutate(Threshold = ifelse(Hotspot == "Yes", "High", Threshold))
如果需要更严格的类型检查,也可以把ifelse换成dplyr::if_else。
补充说明
你提供的dput示例代码存在小语法错误,修正后可直接运行的版本如下:
long_fused <- structure(list(CNV.Gain = c(3L, 0L, 7L), Amplification = c(5L, 0L, 16L), Homozygous.Deletion.Frequency = c(10L, 11L, 25L), Heterozygous.Deletion.Frequency = c(0L, 8L, 0L), Hotspot = c("Yes","No","No"), Threshold = c("Low", "Medium", "High")), class ="data.frame", row.names = c(NA, -3L))
内容的提问来源于stack exchange,提问作者KLM117
相关产品推荐
相关产品推荐

