我有一个包含8个变量(x1,y1,x2,y2,x3,y3,x4,y4)的数据,我应该做一个生成4个图x1vsy1,x2vsy2,x3vsy3和x4vsy4的函数。
所以我试图一个接一个地做这个,用变量做一个新数据,然后生成de plot。
minidata<-select(alldata,x1,y1)
ggplot(minidata,aes(x1,y1))+geom_point()+ggtitle("m VS n")
这样可行,但是当我尝试将其放入函数
时graph<-function(m,n){
minidata<-select(alldata,m,n)
ggplot(minidata,aes(x=m,y=n))+geom_point()+ggtitle("m VS n")
}
graph(y1,x1)
这不起作用说&#34; FUN中的错误(X [[i]],...):object&#39; y1&#39;找不到&#34; 我能做些什么来生成一个创建4个图的函数?
答案 0 :(得分:0)
有很多方法可以做到这一点。一种方法是:
minidata <- data.frame( x1 = 1:20,
y1 = rnorm(20),
x2 = 1:20,
y2 = runif(20))
myGraph <- function( df, x, y ){
mdf <- df[ ,c(x,y)]
names(mdf) <- c("x","y")
ggplot(mdf,aes(x=x,y=y))+geom_point() + ggtitle(paste(y,"~",x)) + labs (x =x, y = y)
}
# call function by passing names of the column using names() function
myGraph (minidata, names(minidata)[1], names(minidata)[2])
# or simply giving a name
myGraph (minidata, "x2", "y2")