我制作了一个定制函数PharmgPlot,它通过 colored颜色 变量绘制药物react 数据和 colored颜色 ,并通过不同的变量更改线型.以下是运行此函数的简化代码:
# func to plot drug response
drugPlot <- function(df, drug, colorByVar, lineTypeVar){
x<- df %>%
filter(drug == !!drug) %>%
ggplot(aes(x = drugDose, y = viability, color=as.factor(.data[[colorByVar]]), linetype = as.factor(.data[[lineTypeVar]])) )+
labs( x = "Dose ", y = "Viability", color = colorByVar, linetype= lineTypeVar)+
geom_point(size = 0.6)+
geom_smooth( se=F, size = 0.5)
return(x)
}
# example df
df <- data.frame(
cellLine = rep(c("CellLine1", "CellLine2"), each = 4),
subtype = rep(c("SubtypeA", "SubtypeB"), each = 4),
drug = rep(c("DrugA", "DrugB", "DrugC"), each = 4 * 2),
drugDose = rep(seq(1, 10, length.out = 4), 6),
viability = rnorm(4 * 6, mean = 80, sd = 10)
)
# run the func
drugPlot(df, "DrugA", colorByVar = "subtype", lineTypeVar = "cellLine")
我的问题是:有没有方法可以使线型或 colored颜色 变量为空?我反复使用这个函数,有时我希望 colored颜色 和线型都有变量,但有时我只想要 colored颜色 .有没有一种方法可以在不创建新函数的情况下做到这一点?
我try 设置lineTypeVar=na,"",c(),但每次都出错.
谢谢!