Potrzebuję zawinąć ggplot2 w inną funkcję i chcę móc analizować zmienne w taki sam sposób, w jaki są akceptowane, czy ktoś może sterować mną we właściwym kierunku.Przekazywanie argumentów do ggplota w opakowaniu
Powiedzmy na przykład, że rozważamy poniżej MWE.
#Load Required libraries.
library(ggplot2)
##My Wrapper Function.
mywrapper <- function(data,xcol,ycol,colorVar){
writeLines("This is my wrapper")
plot <- ggplot(data=data,aes(x=xcol,y=ycol,color=colorVar)) + geom_point()
print(plot)
return(plot)
}
Dummy danych:
##Demo Data
myData <- data.frame(x=0,y=0,c="Color Series")
Istniejące Wykorzystanie który wykonuje bez kłopotów:
##Example of Original Function Usage, which executes as expected
plot <- ggplot(data=myData,aes(x=x,y=y,color=c)) + geom_point()
print(plot)
składnia Wykorzystanie Cel:
##Example of Intended Usage, which Throws Error ----- "object 'xcol' not found"
mywrapper(data=myData,xcol=x,ycol=y,colorVar=c)
Powyższe podaje przykład "oryginalnego" użycia przez pakiet ggplot2 i jak chciałbym go zawinąć w inną funkcję. Opakowanie jednak powoduje błąd.
Jestem pewien, że to odnosi się do wielu innych zastosowań, i to prawdopodobnie został odpowiedział tysiąc razy, jednak nie jestem pewien, co ten temat jest „o nazwie” w R.
Dzięki, nie wiedziałem, że istnieje opcja aes_string, ale czy nie ma sposobu na przekazanie "nazwy", to znaczy, w jaki sposób funkcja ggplot2 wie, co oznaczają te argumenty. –
Istnieją sposoby na uzyskanie nazwy obiektu, ggplot2 używa tego pod maską w 'aes', ale do przekazywania takich argumentów' aes_string' jest znacznie łatwiejsze. –
Witam, jest to bardzo przydatna odpowiedź. Używam tego rozwiązania do opracowania opakowania na histogram. Jednak w moim kodzie mam kod do generowania linii środkowej 'geom_vline (aes (xintercept = mean (histogramVariable)), color = 'red'' .Jak mądrze przekazać' histogramVariable' jako 'data $ histogramVariable' do tego? – Konrad