ggplot2, aes vs aes_string

Sep 13 2020

Así que tengo que sustituir aescon aes_stringdebido a fallar rcmdcheck().

Original:

        aes(
          x = A,
          y = pmax(B, C, na.rm = TRUE),
          ),

Mi confusión se refiere a By C. ¿Puedo poner comillas alrededor de ellos ya que están dentro de la pmaxfunción? Al igual que:

        aes_string(
          x = "A",
          y = pmax("B", "C", na.rm = TRUE),
          ),

¿Es la siguiente otra solución ?:

        aes(
          x = .data$A, y = pmax(.data$B, .data$C, na.rm = TRUE),
          ),

EDITADO:

La comprobación de errores R CMD es que no hay ninguna global vinculante para las variables A, By C.

Respuestas

Oliver Sep 14 2020 at 06:02

La diferencia entre aesy aes_stringes muy simple, que aes_stringinterpretará la cadena que describe los argumentos. P.ej. las siguientes obras

library(ggplot2)
data(mtcars)
ggplot(aes_string(x = "log(hp)", y = "1/log(mpg)", col = "factor(cyl)"), data = mtcars) + 
  geom_point() + 
  labs(col = 'cyl')

Esto también está documentado en la help(aes_string)página

aes_ y aes_string requieren que cites explícitamente las entradas con "" para aes_string (), o con comillas o ~ para aes_ ().

Pero como dijo MrFlick en los comentarios, todas estas funciones están obsoletas, lo que creo que significa que se mantienen por compatibilidad, pero se desaconseja su uso.