First of all, in aes_string
you need to use names for x
and y
[compare args(aes)
and args(aes_string)
]. And then the interaction term can be formulated more understandably as paste0("interaction(", third,", ",fourth, ")")
. So together this gives
testfn <- function(gdf, first, second, third, fourth){
p <- ggplot(gdf, aes_string(x = first,
y = second,
color = fourth,
linetype = third,
group = paste0("interaction(", third,", ",fourth, ")"))) +
geom_point() +
geom_line()
print(p)
}
testfn(phil, "Level", "value","Gender","Name")
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…