Мне было интересно, может ли кто-нибудь помочь мне использовать имя переменной в функции. .
Я собрал точечный график, который сортирует переменные, а затем создает растровое изображение, но я не могу заставить 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}`
чтобы не ставить "Кровь" в поле Название функции (например, Dplotter(mydata$id,mydata$blood)
Как вставить имя переменной в функцию?
было бы еще лучше, если бы можно было вынуть имя набора данных из
Заголовок (без прикрепления набора данных, который, как мне сказали, плохой
практике), так что вместо получения mydata$blood
вы просто получите
"кровь" в названии.
Мне не удалось найти простого решения для вставки имени переменной в
функция. Как вы можете догадаться, поместив имя переменной в
paste()
возвращает значения переменной (чтобы
заголовок графика заполняется значениями, а не именем переменной).
Я также хотел бы еще больше автоматизировать эту функцию, чтобы я мог просто введите набор данных и идентификатор, а затем повторите функцию для каждой переменной в наборе данных.Очевидно, это требует решения сначала вопрос 1, иначе будут встречаться и заголовок, и имена файлов проблемы.