比方说,我有一个数据框架。df
. (下面我以 mtcars
.) 我是否可以写一个函数,让它能接受 df
并生成一个ggplot2散点图?
到目前为止,我有以下代码。
scatterplotter <- function(att1, att2){
plot <- ggplot(data=mtcars, aes(x=att1, y=att2)) +
geom_point(aes(color=as.factor(vs))) +
xlab(paste(att1)) + ylab(paste(att2)) +
ggtitle(paste("plot of",att1,"and ",att2))
return(plot)
}
现在我的问题是,虽然 x=att1
和 y=att2
都是它们应该有的,但这是不能用粘贴的,我得到一个错误的消息说 Error in parse(text = disp) : object 'disp' not found
. 有谁能帮忙解决这个问题?
我不介意如何将名字输入到函数中,无论是 scatterplotter("disp","gear")
或 scatterplotter(disp,gear)
比如说。
(除了base-R + ggplot2之外,请不要使用其他包)
使用 aes_string()
library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 3.6.3
scatterplotter <- function(att1, att2){
plot <- ggplot(data=mtcars, aes_string(x=att1, y=att2)) +
geom_point(aes(color=as.factor(vs))) +
xlab(paste(att1)) + ylab(paste(att2)) +
ggtitle(paste("plot of",att1,"and ",att2))
return(plot)
}
scatterplotter("mpg", "disp")
创建于2020-05-15 重读包 (v0.3.0)