gpt4 book ai didi

r - 如何在ggplot中的AES中使用特殊运算符(..count ..等)使用早期声明的变量

转载 作者:行者123 更新时间:2023-12-03 13:25:49 24 4
gpt4 key购买 nike

假设我要使用以下公式绘制直方图(我知道这不是最好的方法,但是它将说明问题):

set.seed(1)
dframe <- data.frame(val=rnorm(50))
p <- ggplot(dframe, aes(x=val, y=..count..))
p + geom_bar()


它工作正常。但是,假设由于某些原因,我们希望将频率除以耳环定义的数字。我的镜头是:

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


但是我得到这个烦人的错误:

Error in eval(expr, envir, enclos) : object 'k' not found


是否存在将两个 ..count..类变量与一些预定义变量一起使用的方法?

最佳答案

当您使用某些ggplot()进行绘图时(例如stat),似乎y=..count..函数存在一些错误。函数ggplot()已经具有environment变量,因此它可以使用此函数外部定义的变量。

例如,这将起作用,因为k仅用于更改x变量:

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


这将导致错误,因为 k用于更改使用统计 y计算的 y=..count..

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


要解决此问题,您可以将 k保留在 aes()内。

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

关于r - 如何在ggplot中的AES中使用特殊运算符(..count ..等)使用早期声明的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17832608/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com