2011-10-11 39 views
1

我準備在ggplot中繪圖的數據庫,其中我將繪製一個大的geom_point()圖。我想一個設定點站出來,並想使虛擬列的,這樣我可以使用該列的顏色變量,如:使用字符串作爲搜索的R數據框中的條件合併

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

你的方法似乎是合理的,我,你可以像(未經測試)'$ DF顏色<結合顏色的東西 - 與(DF,ifelse(grepl( 「串」,V1,ignore.case = TRUE),「是」,「否」)' – Chase

+0

謝謝追逐 - 你的方法工作的很好,我忘記提及我的方法給出了一個錯誤信息:不正確的維度數目,我的意思是問如何解決,但你的方法工作正常。 – zach

回答

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')) 
+0

甜!現在我正在用天然氣烹飪。謝謝Ramnath – zach