如何根据另一列的条件填充列的值?

时间:2020-04-08 01:10:24

标签: r

如果R中的pca.data $ sample列中存在“ DMSO”,我试图用“ DMSO”填充pca.data $ Type的值。

pca.data$Type[pca.data$sample %in% "DMSO"]='DMSO'

enter image description here

2 个答案:

答案 0 :(得分:1)

pca.data$Type[grep("DMSO", pca.data$sample)] = "DMSO"

答案 1 :(得分:1)

几种方法可以做到这一点。除了已经建议的基本R方法之外,您还可以使用data.tabledplyr

data.table

使用:=有条件替换(通过引用更新)

dt <- data.table::as.data.table(pca.data)
dt[grepl("DMSO", get('sample')), Type := "DMSO"]

上面的代码片段进行分配。如果要可视化输出:dt[]

dplyr

在这种情况下,您可以使用dplyr::if_else

pca.data %>% dplyr::mutate(Type = if_else(grepl("DMSO", sample), 'DMSO', sample)