我想知道是否有人可以帮助我在函数中使用变量名。我已经整理了一个对变量进行排序然后生成位图的点图,但是我无法R
将变量名称传递给plot
标题。
示例数据
id<-c(1,2,3)
blood<-c(1,2,10)
weight<-c(1,2,13)
mydata<-as.data.frame(cbind(id,blood,weight))
mydata$blood
#######SORTED DOT PLOT####
Dplotter<-function (id,x,Title=""){
if (is.null(Title)) {Title=""} else {Title=Title}
DIR<-paste("C:/temp/WholePlots/New/",Title,".bmp",sep="")
D<-as.data.frame(cbind(id,x))
x1<-as.data.frame(D[order(x),])
bmp(DIR)
dotchart(x1$x,labels=id,main=Title,pch=16)
dev.off()
}
###############
Dplotter(mydata$id,mydata$blood,"Blood")
Dplotter(mydata$id,mydata$weight,"Weight")
在函数的第二行,我想传递变量名,比如
`if (is.null(Title)) {Title=varname(x)} else {Title=Title}`
这样我就不必在函数标题字段中输入“Blood”(例如 Dplotter(mydata$id,mydata$blood)
基本上,如何在函数中粘贴变量名?如果可以从标题中取出数据集名称会更好(不附加数据集,我被告知这是不好的做法),这样
mydata$blood
您就不会得到 ,而只是在标题中得到“血”。我找不到在函数中粘贴变量名的简单解决方案。您可以猜到,将变量名称放入
paste()
函数中会返回变量的值(以便绘图标题填充值而不是变量名称)。我还想进一步自动化该函数,这样我就可以放置数据集和 ID,然后为数据集中的每个变量重复该函数。显然这需要先解决问题1,否则标题和文件名都会遇到问题。