首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的直方图合并前两个值

R中的直方图合并前两个值
EN

Stack Overflow用户
提问于 2014-03-15 19:55:51
回答 6查看 4.1K关注 0票数 5

我在R中画了一个直方图,前两个频率被合并到一个我不想要的垃圾桶里。数据中有七个可能的值,我想要7个桶,而不是6个。

R绘制的直方图中的信息是,

代码语言:javascript
复制
$breaks
[1]  9 10 11 12 13 14 15

$counts
[1] 27  6  5  4  1 11

$density
[1] 0.50000000 0.11111111 0.09259259 0.07407407 0.01851852 0.20370370

$mids
[1]  9.5 10.5 11.5 12.5 13.5 14.5

$xname
[1] "data$hour"

$equidist
[1] TRUE

attr(,"class")
[1] "histogram"

问题在$counts中,它们应该是:

代码语言:javascript
复制
9-20
10-7
11-6
12-5  
13-4
14-1
15-11

直方图和信息生成的数据和命令是:

代码语言:javascript
复制
temp <- c(9, 9, 9, 11, 12, 14, 15, 9, 9, 9, 10, 9, 13, 13, 15, 15, 9, 
9, 9, 11, 12, 13, 15, 15, 15, 9, 9, 10, 11, 12, 9, 10, 10, 12, 
15, 9, 9, 9, 9, 10, 11, 15, 9, 10, 10, 11, 11, 12, 13, 15, 15, 
9, 9, 15)

hist(temp)
histinfo = hist(temp)
histinfo

如何才能纠正这种情况?我的想法是数数发生的事件,并画一个条形图,但这似乎是过火,因为赫斯特已经内置了。我试着改变休息时间,但没有结果。

谢谢。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2014-03-15 20:03:37

绘制直方图时必须设置breaks

就我个人而言,我会用手把数据列出来,然后画一个圆珠笔。这可能是你真正想要的,也可能不是。

代码语言:javascript
复制
library(reshape)
temp.melt <- melt(table(temp))

library(ggplot2)
ggplot(temp.melt, aes(x = temp, y = value)) +
  theme_bw() +
  geom_bar(stat = "identity")

票数 2
EN

Stack Overflow用户

发布于 2014-03-15 20:41:39

table函数与barplot一起使用

代码语言:javascript
复制
> barplot(table(temp))

票数 5
EN

Stack Overflow用户

发布于 2014-03-15 20:07:47

当使用hist时,如果您想要每一项,则需要对两端进行分隔。因此,以下内容将有效。

代码语言:javascript
复制
hist(temp, breaks = 8:15)

如果你不喜欢x轴上的8,你必须抑制它,然后画出x轴。

代码语言:javascript
复制
hist(temp, breaks = 8:15, xaxt = 'n')
axis(1, 8:14+0.5, 9:15)

不幸的是,内置的hist函数可能应该主要用于探索而不是发布,因此如果您知道使用参数(如right = TRUE )调用该函数,那么您应该清楚第一个图的输出意味着什么,并且很容易解释(很明显,没有低于8的东西)。

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

https://stackoverflow.com/questions/22428992

复制
相关文章

相似问题

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