Impossibile trovare una risposta a questo - in ggplot2, è possibile sfaccettatura su una funzione di una colonna piuttosto che sul valore della colonna direttamente?ggplot2: sfaccettatura su una funzione della colonna
semplice esempio riproducibile:
dati del campione:
df=data.frame(dat=c(1,2,5,5,7))
questo funziona:
ggplot(df, aes(x=1:5, y=dat, colour=factor(dat > 3))) +
geom_point() + facet_grid(dat ~ .)
Questo non lo fa:
ggplot(df, aes(x=1:5, y=dat, colour=factor(dat > 3))) +
geom_point() + facet_grid((dat > 3) ~ .)
Una soluzione è quella di aggiungere una colonna solo per il sfaccettatura. Questo funziona:
df$facet=df$dat>3
ggplot(df, aes(x=1:5, y=dat, colour=factor(dat > 3))) +
geom_point() + facet_grid(facet ~ .)
Ma c'è un modo per farlo senza dover aggiungere una nuova colonna al data.frame?
Qual è il problema con l'aggiunta di una nuova colonna? Mi piacerebbe piuttosto che aggiungere una nuova colonna sia più veloce grazie al vantaggio delle funzioni R native e della vettorizzazione. – Raffael
La mia avversione principale all'aggiunta di una nuova colonna è che sembra poco elegante. ggplot2 è in grado di gestire la colorazione in base a una funzione di fattore: che dire della sfaccettatura? Che cosa succede se si desidera eseguire questa operazione su diverse funzioni di un fattore, ma non ingombrare il dataframe con colonne aggiuntive o preoccuparsi di creare e eliminarle? – nsheff
Ricevo il tuo punto di vista - ci sono stato anch'io - ma alla fine è solo un problema di bellezza e se mi chiedi, per quanto mi diverta, è un linguaggio inelegante per design - il suo scopo è per fare bene il lavoro, ma non elegantemente. – Raffael