我想知道有没有人能帮我在函数内使用变量名。
我已经做了一个点图来排序变量并生成一个位图,但我无法让
示例数据
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")
在该函数的第二行,我想传递变量名,类似于
```python def some_function(variable_name): ```
`if (is.null(Title)) {Title=varname(x)} else {Title=Title}`
我希望在函数标题中不必输入"Blood" (例如Dplotter(mydata$id,mydata$blood))。基本上,如何在函数中插入变量名?最好能够从标题中删除数据集名称(不需要附加数据集,这是不好的实践),因此您只需获得"blood"而不是mydata$blood
。
我无法找到在函数中轻松插入变量名的解决方案。像你猜测的那样,在paste()
函数中放置变量名会返回变量的值(因此图表标题将填充值而不是变量名)。
此外,我还想进一步自动化该函数,以便我只需放入数据集和ID,然后对数据集中的每个变量重复运行该函数。显然,这需要先解决问题1,否则标题和文件名都会遇到问题。
PlotAll (id,mydata)
并打印出所有图形。非常感谢。 - Marco M