Ich muss ein Streudiagramm mit Adressvariablen durch ihre Spaltennummern anstelle von Namen, d. H. Anstelle von ggplot(dat, aes(x=Var1, y=Var2))
Ich brauche so etwas wie ggplot(dat, aes(x=dat[,1], y=dat[,2]))
. (Ich sage 'etwas', weil das letztere nicht funktioniert).Adressierung x und y in aes durch Variablennummer
Hier ist mein Code:
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
in der Tat, Ihre Lösung sieht flexibler aus, ich mag auch, dass es richtige Achsen Titel macht ... Danke! –
Ab ggplot2 v2.0.0: aes_q() wurde durch aes_() ersetzt, um konsistent mit SE-Versionen von NSE-Funktionen in anderen Paketen zu sein https://github.com/hadley/ggplot2/blob/master/NEWS.md# veraltete Features – Tung