【问题标题】:Error in hist$mids: object of type 'closure' is not subsettable [duplicate]hist$mids 中的错误:“闭包”类型的对象不是子集[重复]
【发布时间】:2013-10-09 15:00:29
【问题描述】:

我正在尝试创建密度图并将其添加为正态曲线。

histvb <- hist(color$VB,
               probability=TRUE,
               breaks=seq(4000, 16000, by=1000),
               main=NULL,xlab=c("Visible Brigthness"), 
               ylab=("Probability Densities"),cex.lab=1.2) 
vb<-color$VB
xfit<-seq(min(0),max(16000),length=16000) 
yfit<-dnorm(xfit,mean=mean(vb),sd=sd(vb))  
yfit<-yfit*diff(hist$mids[1:2])*length(vb)
lines(xfit, yfit, col="blue",lty=5, lwd=2)

当我运行这些线时,我得到了这条线的情节,一切似乎都很好, 但我也收到了这条消息

yfit <- yfit*diff(hist$mids[1:2])*length(vb)
Error in hist$mids : object of type 'closure' is not subsettable

我担心这个错误消息,因为我不知道它是什么意思..

【问题讨论】:

  • 这意味着hist是函数,你不能在hist之后使用“$”。

标签: r


【解决方案1】:

您的意思是histvb$mids[1:2],而不是hist$mids[1:2]histvb 是您在第一行创建的结果:hist 是一个绘制直方图的函数。换行

yfit<-yfit*diff(hist$mids[1:2])*length(vb)

yfit<-yfit*diff(histvb$mids[1:2])*length(vb)

【讨论】:

  • 我试过了,但是当我运行它时,它根本没有画线。不明白为什么,但我再试一次,结果相同:直方图正常,但没有线条。
  • @Maria:首先,你为什么不做plot(density(vb))
  • 一开始我是这样做的,但我更喜欢使用带直线的 hist 来直观地比较我的数据与高斯分布。
  • 哦,对不起,我想我知道你的意思,我只是在绘制 hist >lines(density(vb),col="red") 之后尝试了这个,显然它有效(我会检查它,我是 R 的新手)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
  • 2019-08-09
  • 2019-10-18
相关资源
最近更新 更多