How to use earlier declared variables within aes in ggplot with special operators (..count.., etc.) How to use earlier declared variables within aes in ggplot with special operators (..count.., etc.) r r

How to use earlier declared variables within aes in ggplot with special operators (..count.., etc.)


It seems that there is some bug with ggplot() function when you use some stat for plotting (for example y=..count..). Function ggplot() has already environment variable and so it can use variable defined outside this function.

For example this will work because k is used only to change x variable:

k<-5ggplot(dframe,aes(val/k,y=..count..))+geom_bar()

This will give an error because k is used to change y that is calculated with stat y=..count..

k<-5ggplot(dframe,aes(val,y=..count../k))+geom_bar()Error in eval(expr, envir, enclos) : object 'k' not found

To solve this problem you can kefine k inside the aes().

k <- 5ggplot(dframe,aes(val,k=k,y=..count../k))+geom_bar()