R ggplot2颜色与ifelse的关联问题

R ggplot2颜色与ifelse的关联问题,r,if-statement,ggplot2,colors,time-series,R,If Statement,Ggplot2,Colors,Time Series,这里是我的df结构 Date VAR Value 1 A 0.1 2 A 0.1 2 B1 0.2 2 B2 0.3 2 B3 0.2 3 A 0.1 4 A 0.1 5 A 0.1 5 B4 0.4 我能画出来。但我有个问题。我希望每个B只有一种颜色。我写不好,因为我有很多专栏。所以我需要grepl函数。 我试

这里是我的df结构

Date VAR  Value
    1    A    0.1 
    2    A    0.1 
    2    B1   0.2 
    2    B2   0.3 
    2    B3   0.2 
    3    A    0.1
    4    A    0.1
    5    A    0.1
    5    B4   0.4
我能画出来。但我有个问题。我希望每个B只有一种颜色。我写不好,因为我有很多专栏。所以我需要grepl函数。 我试过了。但这是错误的

print(ggplot(df, aes(date,value)) 
      + geom_line(aes(colour = ifelse(grepl("B", VAR) == T, "green", "blue"))) 

我如何处理这个问题?

创建一个带有颜色的新列,并使用
缩放\u颜色\u标识

library(dplyr)
library(ggplot2)

df %>%
  mutate(color = ifelse(grepl("B", VAR), "green", "blue")) %>%
  ggplot(aes(Date, Value, color = color)) + geom_line() + 
  scale_color_identity()

很抱歉,它不起作用。我昨天找到了解决办法。我必须同时使用填充和颜色。打印(ggplot(df,aes(日期,值,填充=变量,颜色=颜色))+geom_线()