Мне было интересно, может ли кто-нибудь помочь мне использовать имя переменной внутри функции. Я собрал точку, которая сортирует переменные, а затем создает растровое изображение, но я не могу получить R
, чтобы передать имя переменной в заголовок plot
.Передать имя переменной в заголовок функции title
Пример данных
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}`
, так что я не» t нужно поставить «Кровь» в поле «Название поля» (например, Dplotter (mydata $ id, mydata $ blood)
В принципе, как вставить имя переменной в функцию? Это было бы лучше, если бы можно было вытащить имя набора данных из заголовка (без прикрепления набора данных, о котором мне сказали, это плохо практика), так что вместо получения
mydata$blood
вы получите «кровь», в названии.Я не нашел легкое решение для вставки имени переменной в функции. Как вы можете догадаться, поместить имя переменной в
paste()
функция возвращает значения переменной (так что заголовок сюжета заполняется значениями, а не именем переменной).Я хотел бы также автоматизировать функцию еще дальше, так что я могу просто поставить набор данных и идентификатор, а затем функцию повторяют для каждой переменной в наборе данных. Очевидно, для этого необходимо сначала решить вопрос , в противном случае как заголовок, так и имена файлов будут встречаться с проблемами .
спасибо. Он работает очень хорошо. Есть ли у кого-нибудь предложения о том, как сделать 2 (вопрос 2, см. Выше). Например, запустите foo plot run в рамках другой функции «PlotALL», которая передает все переменные набора данных один за другим для построения foo? Это позволило бы мне написать ## PlotAll (id, mydata) и распечатать все графики. Большое спасибо –