如何为 R 中的箱线图分配颜色?只能使用 base R

How to assign colors to boxplot in R? Can only use base R

我在尝试为 R 中的箱线图分配颜色时遇到问题。这是我的代码和我尝试 运行 代码时的输出。真的不知道该怎么做

region1<-c("North-Apulia","Calabria","South-Apulia","Sicily")
region2<-c("Inland-Sardinia,","Coast-Sardinia")
region3<-c("Umbria","East-Liguria","West-Liguria")
# c - Boxplots
mycolors<-ifelse(levels(betterolivelabel)==region1,col="red",
                 ifelse(levels(betterolivelabel)==region2,col="blue",
                        ifelse(levels(betterolivelabel)==region3, col="green")))```


```Error in ifelse(levels(betterolivelabel) == region1, col = "red", ifelse(levels(betterolivelabel) ==  : 
  unused argument (col = "red")```
> 

如果要比较 1 个以上的值,请使用 %in%。当 none 个条件满足时,您还需要提供最终值。

lvls <- levels(betterolivelabel)

mycolors<-ifelse(lvls %in% region1,"red",
                 ifelse(lvls %in% region2,"blue",
                        ifelse(lvls %in% region3, "green", "black")))

我们可以使用case_when

library(dplyr)
lvls <- levels(betterolivelabel)
mycolors <- case_when(lvls %in% region1 ~ "red",
                      lvls %in% region2 ~ "blue",
                      lvls %in% region3 ~ "green",
                      TRUE ~ "black")