繁体   English   中英

R直方图 - 频率范围

[英]R histogram - range of frequencies

我试图在直方图上获得最大频率。 我有一个值列表。 然后,我做以下事情:

hist(list, breaks=length(list), freq=TRUE)

它会自动生成x轴和y轴的范围。 y轴是频率,x轴是列表中的值。

那么,我如何才能找到显示在此图表上的最大频率?

我正在尝试在图表的右上角创建一个图例,所以我需要获得最大频率值。 或者有没有办法告诉R在图表的右上角放置一个图例框?

直方图的值可以存储为R中的数据帧。以OP的示例数据帧'list'为例,您可以:

list_histo <- hist(list, breaks=length(list), freq=TRUE)

只需打字

list_histo 

返回R将显示包含直方图信息的新“元”数据框(此处显示的数据是任意的,仅供参考):

$breaks
[1] 0.40 0.42 0.44 0.46 0.48 0.50 0.52 0.54 0.56 0.58 0.60 0.62 0.64 0.66 0.68
[16] 0.70 0.72 0.74 0.76

$counts
[1]      1     15    112    878   4734  17995  51094 110146 178855 216454
[11] 194536 130591  64218  23017   6117   1070    144     23

$intensities
[1]  0.00005  0.00075  0.00560  0.04390  0.23670  0.89975  2.55470  5.50730
[9]  8.94275 10.82270  9.72680  6.52955  3.21090  1.15085  0.30585  0.05350
[17]  0.00720  0.00115

$density
[1]  0.00005  0.00075  0.00560  0.04390  0.23670  0.89975  2.55470  5.50730
[9]  8.94275 10.82270  9.72680  6.52955  3.21090  1.15085  0.30585  0.05350
[17]  0.00720  0.00115

$mids
[1] 0.41 0.43 0.45 0.47 0.49 0.51 0.53 0.55 0.57 0.59 0.61 0.63 0.65 0.67 0.69
[16] 0.71 0.73 0.75

$xname
[1] "list_histo"

$equidist
[1] TRUE

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

调用最大值现在很简单 - 只需使用即可

max(list_histo$counts)

将返回最大值。

set.seed(100)

x = rnorm(100, mean = 5, sd = 2)

res = hist(x)

res$mids[which.max(res$counts)]

[1] 4.5

根据休息时间,条形的宽度会发生变化,但是中间条将为您提供所需条形图的中点。 这会找到具有最高计数(最大频率)的条的中点

而不是传说中的x,y参数,您可以使用legend('topright',...)

你也可以用table(list)

它将返回值的列表和重复的次数:

> list<-c(0.2, 0.6, 0.4, 0.5, 0.1, 0.5, 0.6, 0.6, 0.6, 0.1, 0.1, 0.6, 0.6, 0.6, 0.6)

> table(list)
list
0.1 0.2 0.4 0.5 0.6 
  3   1   1   2   8 

> max(table(list))
[1] 8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM