Zastanawiałem się, czy ktoś może mi pomóc użyć zmiennej nazwy w funkcji. Sporządziłem wykres kropkowy, który sortuje zmienne, a następnie tworzy bitmapę, ale nie mogę uzyskać R
przekazania nazwy zmiennej do tytułu plot
.Przekaż nazwę zmiennej do funkcji funkcji plotowania
Przykładowe dane
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")
W drugim wierszu funkcji, chciałbym przekazać zmiennej nazwy, coś jak
`if (is.null(Title)) {Title=varname(x)} else {Title=Title}`
tak, że don” Trzeba umieścić "Krew" w funkcji Pole tytułu (np. Dplotter (mydata $ id, mydata $ blood)
Zasadniczo, w jaki sposób wkleja się nazwę zmiennej w funkcji? To byłoby jeszcze lepsze, gdyby można było pobrać nazwę zestawu danych z tytułu (bez dołączania zestawu danych, co do którego powiedziano mi, że jest zła praktyka ), więc zamiast uzyskać
mydata$blood
, otrzymujesz po prostu "krew" w tytule.Nie udało mi się znaleźć prostego rozwiązania do wklejenia w nazwie zmiennej w funkcji. Jak można się domyślić, umieszczenie nazwy zmiennej w funkcji powoduje zwrócenie wartości zmiennej (tak, że tytuł fabuły jest wypełniony wartościami, a nie nazwą zmiennej).
Chciałbym również zautomatyzować funkcję jeszcze bardziej, tak że mogę wystarczy umieścić zestaw danych oraz identyfikator, a następnie mieć funkcję powtarzane dla każdej zmiennej w zbiorze danych. Oczywiście wymaga to najpierw rozwiązania pytaniapierwsze, w przeciwnym razie zarówno tytuł, jak i nazwy plików napotkają problemy z .
Dziękuję bardzo. Działa bardzo dobrze. Czy ktoś ma jakieś sugestie, jak zrobić 2 (pytanie 2, patrz wyżej). Na przykład, spraw, aby wykres foo działał w ramach innej funkcji "Plotall", która przesyła wszystkie zmienne zestawu danych jeden po drugim do wykresu foo? To pozwoliłoby mi napisać ## PlotAll (id, mydata) i uzyskać wszystkie wydrukowane wykresy. Wielkie dzięki –