puntos dobles en un ggplot

No puedo encontrar la documentación para los puntos dobles alrededor de la densidad

set.seed(1234) df <- data.frame(cond = factor(rep(c("A","B"), each=200)), rating = c(rnorm(200),rnorm(200, mean=.8))) print(head(df)) print(ggplot(df, aes(x=rating)) + geom_histogram(aes(y=..density..), # Histogram with density instead of count on y-axis binwidth=.5, colour="black", fill="white") + geom_density(alpha=.2, fill="#FF6666") + geom_vline(aes(xintercept=mean(rating, na.rm=T)), # Ignore NA values for mean color="red", linetype="dashed", size=1)) 

¿Sabes qué operador representan?

Editar

Sé lo que hace cuando se usa en geom, me gustaría saber de qué se trata . Por ejemplo, el operador de punto único se define como

 > . function (..., .env = parent.frame()) { structure(as.list(match.call()[-1]), env = .env, class = "quoted") }  

Si redefino la densidad , entonces ..densidad … tiene un efecto diferente, por lo que parece que XX -> ..XX .. es un operador. Me gustaría encontrar cómo se define.

A diferencia de muchos otros lenguajes, en R, el punto es perfectamente válido en identificadores. En este caso, ..count.. es un identificador. Sin embargo, hay un código especial en ggplot2 para detectar este patrón y para quitar los puntos. Parece poco probable que el código real use identificadores formateados de esa manera, por lo que esta es una forma clara de distinguir entre estética definida y calculada.

El código relevante está al final de layer.r :

 # Determine if aesthetic is calculated is_calculated_aes <- function(aesthetics) { match <- "\\.\\.([a-zA-z._]+)\\.\\." stats <- rep(FALSE, length(aesthetics)) grepl(match, sapply(aesthetics, deparse)) } # Strip dots from expressions strip_dots <- function(aesthetics) { match <- "\\.\\.([a-zA-z._]+)\\.\\." strings <- lapply(aesthetics, deparse) strings <- lapply(strings, gsub, pattern = match, replacement = "\\1") lapply(strings, function(x) parse(text = x)[[1]]) } 

Se usa más arriba en la función map_statistic . Si está presente una estética calculada, se usa otro cuadro de datos (uno que contenga, por ejemplo, la columna de count ) para la gráfica.

El único punto . es solo otro identificador, definido en el paquete plyr . Como puede ver, es una función.