首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从分位数输出的in绘图在eval(expr,envir,eval)中出现错误: object‘.’未找到

从分位数输出的in绘图在eval(expr,envir,eval)中出现错误: object‘.’未找到
EN

Stack Overflow用户
提问于 2015-06-12 04:15:15
回答 1查看 47关注 0票数 0

我看过很多其他的查询,标题中也有相同的错误,但是如果它们适用于我的情况,我不太了解R,无法分辨。

我正在使用CO2数据,试图制作一个图表,显示平均吸收量及其四分位数范围。(我已经删除了“平均”图表线,因为这似乎是可行的。)下面是一些代码:

代码语言:javascript
运行
复制
library(ggplot2)
library(plyr)

dat <- data.frame(ColPlant=CO2$Plant, ColUptake=CO2$uptake)

df<-ddply(dat, 'ColPlant', function(x) c(Cases=nrow(x), 
        AvgUptake=mean(x$ColUptake), TotalUptake=sum(x$ColUptake),
        MedianUptake=median(x$ColUptake), QuartileUptake1=quantile(x$ColUptake,0.25), 
        QuartileUptake2=quantile(x$ColUptake,0.5), 
        QuartileUptake3=quantile(x$ColUptake,0.75)))

df #Display the summarised data table

combination <- ggplot() +
               geom_linerange(aes(x=ColPlant,y=AvgUptake,ymin=QuartileUptake1,ymax=QuartileUptake3), 
                  data=df, colour="yellow", size=5) +
               #geom_point(aes(x=ColPlant,y=AvgUptake),data=df,size=3,colour="red") +
               theme(axis.text.x=element_text(angle=90))

combination #Display the chart

问题是,它到了最后一行,就掉下来了。如问题标题所示,错误是Error in eval(expr, envir, enclos) : object 'QuartileUptake1' not found。然而,当我运行df$QuartileUptake1时,控制台会返回数据。

我漏掉了什么这里?为什么它看不到这个变量,因为它可以看到另一个或多或少以相同的方式创建的变量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-12 04:38:21

默认情况下,quantile返回概率:

代码语言:javascript
运行
复制
set.seed(42)
x <- rnorm(100)
qx <- quantile(x)
qx
#          0%         25%         50%         75%        100% 
# -2.99309008 -0.61669350  0.08979677  0.66155812  2.28664539 

这些概率是以您所提供的名称来强制的。这就是为什么"QuartileUptake1“变成了”QuartileUp举1.25%“的原因。一个解决办法是返回分位数,而不包含关联的概率,例如:

代码语言:javascript
运行
复制
df<-ddply(dat, 'ColPlant', function(x) c(Cases=nrow(x), 
                                         AvgUptake=mean(x$ColUptake), 
                                         TotalUptake=sum(x$ColUptake),
                                         MedianUptake=median(x$ColUptake), 
                                         QuartileUptake1=as.numeric(quantile(x$ColUptake,0.25)), 
                                         QuartileUptake2=as.numeric(quantile(x$ColUptake,0.5)), 
                                         QuartileUptake3=as.numeric(quantile(x$ColUptake,0.75))))


combination <- 
 ggplot() +
 geom_linerange(aes(x=ColPlant, y=AvgUptake, ymin=QuartileUptake1, ymax=QuartileUptake3), 
               data=df, colour="yellow", size=5) +
 #geom_point(aes(x=ColPlant,y=AvgUptake),data=df,size=3,colour="red") +
 theme(axis.text.x=element_text(angle=90))
combination

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30795208

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档