对于矩阵“结果”中的每一行,如下所示
A B C D E F G H I J
1 4 6 3 5 9 9 9 3 4 4
2 5 7 5 5 8 8 8 7 4 5
3 7 5 4 4 7 9 7 4 4 5
4 6 6 6 6 8 9 8 6 3 6
5 4 5 5 5 8 8 7 4 3 7
6 7 9 7 6 7 8 8 5 7 6
7 5 6 6 5 8 8 7 3 3 5
8 6 7 4 5 8 9 8 4 6 5
9 6 8 8 6 7 7 7 7 6 6
我想为每行绘制一个直方图,其中有3个区间,如下所示:
samp<-result[1,]
hist(samp, breaks = 3, col="lightblue", border="pink")
现在需要的是将直方图频率计数转换为数组,如下所示 如果我说4个箱子并说第一个箱子有计数= 5而第二个箱子有一个计数= 2和第四个箱子= 3。现在我想要一个包含每个容器中所有值的向量,来自向量中的数据结果(对于每一行)作为我的输出。
row1 5 2 0 3
对于数百行,我想以自动方式进行,因此发布了这个问题。
最后矩阵应该看起来像
bin 2-4 bin 4-6 bin6-8 bin8-10
row 1 5 2 0 3
row 2
row 3
row 4
row 5
row 6
row 7
row 8
row 9
答案 0 :(得分:2)
DF <- read.table(text="A B C D E F G H I J
1 4 6 3 5 9 9 9 3 4 4
2 5 7 5 5 8 8 8 7 4 5
3 7 5 4 4 7 9 7 4 4 5
4 6 6 6 6 8 9 8 6 3 6
5 4 5 5 5 8 8 7 4 3 7
6 7 9 7 6 7 8 8 5 7 6
7 5 6 6 5 8 8 7 3 3 5
8 6 7 4 5 8 9 8 4 6 5
9 6 8 8 6 7 7 7 7 6 6", header=TRUE)
m <- as.matrix(DF)
apply(m,1,function(x) hist(x,breaks = 3)$count)
# $`1`
# [1] 5 2 0 3
#
# $`2`
# [1] 5 0 2 3
#
# $`3`
# [1] 6 3 1
#
# $`4`
# [1] 1 6 2 1
#
# $`5`
# [1] 3 3 4
#
# $`6`
# [1] 3 4 2 1
#
# $`7`
# [1] 2 5 3
#
# $`8`
# [1] 6 3 1
#
# $`9`
# [1] 4 4 0 2
请注意,根据文档,休息次数只是一个建议。如果您希望在所有行中具有相同数量的中断,则应在hist
之外进行分箱:
breaks <- 1:5*2
t(apply(m,1,function(x) table(cut(x,breaks,include.lowest = TRUE))))
# [2,4] (4,6] (6,8] (8,10]
# 1 5 2 0 3
# 2 1 4 5 0
# 3 4 2 3 1
# 4 1 6 2 1
# 5 3 3 4 0
# 6 0 3 6 1
# 7 2 5 3 0
# 8 2 4 3 1
# 9 0 4 6 0
答案 1 :(得分:1)
您可以访问由counts
返回的hist
向量(有关详细信息,请参阅?hist
):
counts <- hist(samp, breaks = 3, col="lightblue", border="pink")$counts