使用String作为搜索的R数据框中的条件合并

时间:2011-10-11 23:32:01

标签: r grep ggplot2

我正在准备一个数据库,用于在ggplot中绘制一个大的geom_point()地块。我想要一套突出的点,并考虑制作一个虚拟列,以便我可以将该列用作颜色变量,如下所示:

p <- ggplot(data, aes(x-x,y-y,color=color)
colors=c("yes"="orange2", "no"="grey")
scale_color_manual(values=colors)

制作我想要的虚拟列,如下所示:

df$color <- "no"

设置默认颜色,然后使用grep替换来制作突出显示颜色。

df$color[grep("string", df$V1, ignore.case=T),] < "yes"

其中V1是包含我想要替换的字符串的列。虽然我会喜欢一些关于如何获得替换的建议,但我也有兴趣了解更直接的着色方法,这种方法需要突出显示特定值的数据。

感谢

1 个答案:

答案 0 :(得分:0)

以下是使用grepl执行此操作的一种方法。我使用mtcars数据集进行说明。假设您希望Merc脱颖而出。你可以打电话

ggplot(mtcars, aes(mpg, hp)) +
  geom_point(aes(colour = grepl('Merc', rownames(mtcars)))) +
  scale_colour_manual("Merc", values = c('black', 'red'))