首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对每个表格行进行装箱,并在R中绘制堆叠条形图

对每个表格行进行装箱,并在R中绘制堆叠条形图
EN

Stack Overflow用户
提问于 2013-03-28 09:04:18
回答 1查看 110关注 0票数 1

我正在计划制作堆叠条形图,就像这篇文章中的plot stacked bar plot in R

我有表格格式的原始数据,没有任何标题(每行包含七个值):

代码语言:javascript
复制
1.028 1.125 1.475 0.793 0.803 0.815 0.974
0.867 1.115 1.256 1.377 1.029 1.184 1.135
0.497 0.400 0.313 0.570 0.319 0.558 0.475
0.541 0.646 0.309 0.692 0.813 0.575 0.806
1.153 1.184 0.792 0.666 0.976 0.607 0.706
1.236 1.049 1.424 1.773 1.019 0.910 1.376

我的计划是首先为每一行制作步长为1的不同间隔的垃圾桶。

代码语言:javascript
复制
0-1  1-2  2-3
4    3    0
1    6    0
...

第二,在x轴上制作每一行的间隔的堆叠条。

我已经用谷歌搜索了很多。我在这里停了下来……

代码语言:javascript
复制
> mytable = read.table("./temp.out")
> m <-apply(mytable, 1, cut, seq(0, 3, 1))
> m
[,1]    [,2]    [,3]    [,4]    [,5]    [,6]    [,7]
[1,] "(1,2]" "(0,1]" "(0,1]" "(0,1]" "(0,1]" "(1,2]" "(1,2]"

[2,] "(1,2]" "(1,2]" "(0,1]" "(0,1]" "(0,1]" "(1,2]" "(1,2]"

[3,] "(1,2]" "(1,2]" "(0,1]" "(0,1]" "(0,1]" "(0,1]" "(1,2]"

[4,] "(0,1]" "(1,2]" "(0,1]" "(0,1]" "(0,1]" "(0,1]" "(1,2]"

[5,] "(0,1]" "(1,2]" "(0,1]" "(0,1]" "(0,1]" "(0,1]" "(1,2]"

[6,] "(0,1]" "(1,2]" "(0,1]" "(0,1]" "(0,1]" "(0,1]" "(0,1]"

[7,] "(0,1]" "(1,2]" "(0,1]" "(0,1]" "(0,1]" "(0,1]" "(1,2]"

之后,我无法在频率表中将其转换为

代码语言:javascript
复制
0-1  1-2  2-3
4    3    0
1    6    0
...

你能建议我如何制作频率表吗?得到频率表后,这些数据可以在堆栈条形图中绘制出来。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-28 09:39:25

您可以使用匿名函数获取您想要的信息,如下所示:

代码语言:javascript
复制
m <- t(apply(mytable, 1, function(x) table(cut(x,seq(0, 3, 1)))))

> m
     (0,1] (1,2] (2,3]
[1,]     4     3     0
[2,]     1     6     0
[3,]     7     0     0
[4,]     7     0     0
[5,]     5     2     0
[6,]     1     6     0

如果您保留转置格式的数据,而不使用t,如下所示...

代码语言:javascript
复制
m <- apply(mytable, 1, function(x) table(cut(x,seq(0, 3, 1))))

...you可以按原样绘制条形图:

代码语言:javascript
复制
barplot(m)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15672471

复制
相关文章

相似问题

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