Mam serię wykresów ggplot, które powtarzam w kilku niewielkich odmianach. Chciałbym zawrzeć te spacje z ich opcjami w funkcji, aby uniknąć wielu powtórzeń w kodzie.Pisanie funkcji ggplot w R z opcjonalnymi argumentami
Mój problem polega na tym, że dla niektórych wykresów używam opcji + facet_wrap(), ale dla innych nie jestem. To znaczy. Potrzebuję, aby folia aspektu była opcjonalnym argumentem. Gdy zostanie uwzględniony, kod musi wywołać funkcję + facet_wrap() ze zmienną podaną w argumencie faset.
Więc idealnie moja funkcja będzie wyglądać tak, ze aspekty bycia opcjonalny argument:
$ qhist(variable, df, heading, facets)
Próbowałem googlowania jak dodać opcjonalne argumenty i sugerują one albo przekazując wartość domyślną lub stosując jeśli pętla z funkcja missing(). Nie byłem w stanie zabrać się do pracy.
Oto funkcja, którą napisałem, z uwzględnieniem pożądanej funkcjonalności opcjonalnego argumentu aspektu.
$ qhist <- function(variable, df, heading, facets) {
qplot(variable, data = df, geom = "histogram", binwidth = 2000,
xlab = "Salary", ylab = "Noms") +
theme_bw() +
scale_x_continuous(limits=c(40000,250000),
breaks=c(50000,100000,150000,200000,250000),
labels=c("50k","100k","150k","200k","250k")) +
opts(title = heading, plot.title = theme_text(face = "bold",
size = 14), strip.text.x = theme_text(size = 10, face = 'bold'))
# If facets argument supplied add the following, else do not add this code
+ facet_wrap(~ facets)
Czy "aspekty" będą logiczne?Albo coś innego? (wektor znaków zmiennych do aspektu?) –
Nie byłoby zmienną do aspektu. Na przykład mam histogramy danych pensji, a czasami chcę je analizować według branży. –