我想知道是否有人可以帮我在函数中使用变量名.我已经整理了一个点图,它对变量进行排序然后生成一个位图,但是我无法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")
Run Code Online (Sandbox Code Playgroud)
在函数的第二行,我想传递变量名称,例如
`if (is.null(Title)) {Title=varname(x)} else {Title=Title}`
Run Code Online (Sandbox Code Playgroud)
这样我就不必在函数Title字段中输入"Blood"(例如Dplotter(mydata $ id,mydata $ blood)
基本上,如何在函数中粘贴变量名?如果可以从标题中取出数据集名称(没有附加数据集,我被告知这是不好的做法)会更好,这样mydata$blood你就可以获得标题中的"鲜血".
我没能找到一个简单的解决方案来粘贴函数中的变量名.您可以猜测,将变量名称放在
paste()函数中会返回变量的值(以便绘图标题用值而不是变量名称填充).
我还希望进一步自动化该功能,这样我就可以放置数据集和ID,然后为数据集中的每个变量重复该功能.显然,这需要首先解决问题1,否则标题和文件名都会遇到问题.