r - 创建一个从数据生成图的函数
问题描述
我有一个包含 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)
这不起作用说“FUN(X [[i]],...)中的错误:找不到对象'y1'”我可以做些什么来生成一个创建4个图的函数?
解决方案
有很多方法可以做到这一点。一种方法是:
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")
推荐阅读
- django-tables2 - 用于分组行的 django-tables2 css
- java - LDAP BIND 超时认证
- github - EGit 从其他分支拉取
- javascript - 如何从javascript文件中的打字稿文件导入对象?
- c# - 带有 SketchUp 模型的网格对撞机 (.dae)
- python - 从 Python 字符串中删除所有数字,除了数字后跟句点
- cuda - src/cpp/cuda.hpp:14:10:致命错误:cuda.h:没有这样的文件或目录
- php - 输入文本名称数组 - htmlspecialchars() 期望参数 1 为字符串
- java - Javafx 自定义工具提示实现仅在安装的最后一个节点上显示
- go - 使用选择时转到频道缺少偶数