ggplot2, aes vs aes_string
Quindi devo sostituire aescon a aes_stringcausa di un guasto rcmdcheck().
Originale:
aes(
x = A,
y = pmax(B, C, na.rm = TRUE),
),
La mia confusione riguarda Be C. Posso inserire virgolette intorno a loro poiché sono all'interno della pmaxfunzione? Così:
aes_string(
x = "A",
y = pmax("B", "C", na.rm = TRUE),
),
La seguente è ancora un'altra soluzione ?:
aes(
x = .data$A, y = pmax(.data$B, .data$C, na.rm = TRUE),
),
MODIFICATO:
Il Controllo errore di R CMD è che non v'è alcuna globale vincolante per le variabili A, Be C.
Risposte
La differenza tra aese aes_stringè molto semplice, che aes_stringinterpreterà la stringa che descrive gli argomenti. Per esempio. i seguenti lavori
library(ggplot2)
data(mtcars)
ggplot(aes_string(x = "log(hp)", y = "1/log(mpg)", col = "factor(cyl)"), data = mtcars) +
geom_point() +
labs(col = 'cyl')
Anche questo è documentato nella help(aes_string)pagina
aes_ e aes_string richiedono di citare esplicitamente gli input con "" per aes_string (), o con virgolette o ~ per aes_ ().
Ma come ha affermato MrFlick nei commenti, queste funzioni sono tutte soft-deprecate, il che credo significhi che sono mantenute per compatibilità ma l'utilizzo è sconsigliato.