【发布时间】:2012-03-12 11:24:07
【问题描述】:
我想知道是否有人可以帮助我在函数中使用变量名。
我整理了一个点图,对变量进行排序,然后生成位图,但我无法让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题,否则标题和文件名都会遇到 问题。
【问题讨论】:
标签: r function variable-names