ggplot2, aes contre aes_string
Je dois donc remplacer aespar en aes_stringraison d'un échec rcmdcheck().
Original:
aes(
x = A,
y = pmax(B, C, na.rm = TRUE),
),
Ma confusion concerne Bet C. Suis-je autorisé à mettre des guillemets autour d'eux puisqu'ils sont à l'intérieur de la pmaxfonction? Ainsi:
aes_string(
x = "A",
y = pmax("B", "C", na.rm = TRUE),
),
La solution ci-dessous est-elle encore une autre solution?:
aes(
x = .data$A, y = pmax(.data$B, .data$C, na.rm = TRUE),
),
ÉDITÉ:
L'erreur de vérification R CMD est qu'il n'y a pas de liaison globale pour les variables A, Bet C.
Réponses
La différence entre aeset aes_stringest très simple, qui aes_stringinterprétera la chaîne qui décrit les arguments. Par exemple. les oeuvres suivantes
library(ggplot2)
data(mtcars)
ggplot(aes_string(x = "log(hp)", y = "1/log(mpg)", col = "factor(cyl)"), data = mtcars) +
geom_point() +
labs(col = 'cyl')
Ceci est également documenté sur la help(aes_string)page
aes_ et aes_string vous demandent de citer explicitement les entrées soit avec "" pour aes_string (), soit avec un guillemet ou ~ pour aes_ ().
Mais comme MrFlick l'a déclaré dans les commentaires, ces fonctions sont toutes dépréciées, ce qui, je pense, signifie qu'elles sont conservées pour des raisons de compatibilité, mais leur utilisation est déconseillée.