R:绘制分箱数据

时间:2011-04-07 12:29:19

标签: r

我正在将数据分类到容器和平均值,请参阅this solution

我使用与上述链接完全相同的解决方案,但将数据修复为散点图。导致我困难的代码是:

myData.class <- cut(df$xaxis, seq(0,30,length=60), include.lowest=TRUE)
mean.yaxis <- tapply(df$yaxis, myData.class, mean)
lines(mean.yaxis ~ seq(0, 30, length=60))

对行的调用产生错误:

Error in model.frame.default(formula = mean.yaxis ~ seq(0, 30, length = 60),  : 
    variable lengths differ (found for 'seq(0, 30, length = 60)')

调用str(mean.yaxis)会产生:

num [1:59(1d)] 0 0 0 0.349 4.652 ...
- attr(*, "dimnames")=List of 1
  ..$ : chr [1:59] "[0,0.508]" "(0.508,1.02]" "(1.02,1.53]" "(1.53,2.03]" ...

如何在调用功能线(...)时访问正确的数据?

2 个答案:

答案 0 :(得分:2)

最佳解决方案在您的链接中接受的答案中给出。这将绘制x轴上的间隔。

cut返回一个比你的序列少1个因子的因子(如你所见)。如果你想要间隔中频,你可以做(​​采用前一个例子):

data(quakes)

Seq <- c(40, 120, 200, 300, 400, 500, 600, 680)
depth.class <- cut(quakes$depth, Seq, include.lowest = TRUE)
mean.mag <- tapply(quakes$mag, depth.class, mean)

class.mids <- Seq[-1] - diff(Seq)/2

plot(mean.mag~class.mids,xlim=range(Seq))
lines(mean.mag~class.mids)

enter image description here

答案 1 :(得分:0)

也许:

lines(mean.yaxis ~ seq(0, 30, length=length(mean.yaxis)))

HTH