Potrzebuję narysować wykres rozrzutu ze zmiennymi adresującymi według ich numerów kolumn zamiast nazw, tj. Zamiast ggplot(dat, aes(x=Var1, y=Var2))
potrzebuję czegoś takiego jak ggplot(dat, aes(x=dat[,1], y=dat[,2]))
. (Mówię "coś", bo to drugie nie działa).Adresowanie xi y w AES przez numer zmiennej
Oto mój kod:
showplot1<-function(indata, inx, iny){
dat<-indata
print(nrow(dat)); # this is just to show that object 'dat' is defined
p <- ggplot(dat, aes(x=dat[,inx], y=dat[,iny]))
p + geom_point(size=4, alpha = 0.5)
}
testdata<-data.frame(v1=rnorm(100), v2=rnorm(100), v3=rnorm(100), v4=rnorm(100), v5=rnorm(100))
showplot1(indata=testdata, inx=2, iny=3)
# Error in eval(expr, envir, enclos) : object 'dat' not found
Rzeczywiście, twoje rozwiązanie wygląda na bardziej elastyczne, podoba mi się też, że tworzy prawidłowe tytuły osi ... Dzięki! –
Począwszy od ggplot2 v2.0.0: aes_q() został zastąpiony przez aes_(), aby był zgodny z wersjami SE funkcji NSE w innych pakietach https://github.com/hadley/ggplot2/blob/master/NEWS.md# przestarzałe funkcje – Tung