【问题标题】:how can i find the total frequency of a given range in a histogram?如何在直方图中找到给定范围的总频率?
【发布时间】:2015-09-21 13:56:35
【问题描述】:

我为模拟创建了一个直方图,现在我需要找到 x 变量大于给定值的实例总数。具体来说,我的数据是相关性(范围从 -1 到 1,bin 大小为 0.05),我想找到相关性大于 0.1 的事件的百分比。找到大于 0.1 的事件总数很好,因为它很容易计算。

library(psych) 
library(lessR)

corrData=NULL 
for (i in 1:1000){ 
    x1 <- rnorm(mean=0, sd = 1, n=20) 
    x2 <- rnorm(mean=0, sd = 1, n=20) 
    data <- data.frame(x1,x2) 
    r <- with(data, cor(x1, x2)) 
    corrData <- append(corrData,r) 
} 

describe(corrData) 
hist <- hist(corrData, breaks=seq(-1,1,by=.05), main="N=20") 
describe(hist) count(0.1, "N=20")

【问题讨论】:

  • 寻求帮助时,最好在示例数据中包含reproducible example,这样我们就可以用工作代码来回答。
  • 您的直方图的断点可能与您关心的截止点不匹配。对于后者,请尝试mean(x&gt;0.1)
  • 我不清楚你为什么需要一个直方图。如果您有一组相关性x,并且想知道x &gt; 0.1 的分数,只需使用:sum(x&gt;0.1)/length(x)。你确定不想要:sum(abs(x)&gt;0.1)/length(x)。这给出了相关幅度> 0.1 ...的分数
  • 这是一个课堂作业,我对 R 很陌生。我为相关性的分布做了一个直方图。下一步是确定相关性 >0.1、>0.3、>0.5 的样本百分比。 library(psych) library(lessR) corrData=NULL for (i in 1:1000){ x1
  • 我已将此添加到您的问题中。未来:自己编辑问题。不要在 cmets 中提供代码。

标签: r histogram frequency


【解决方案1】:

试试这样的:

N=500
bh=hist(runif(N,-1,1))
#str(bh)
sum(bh$counts[bh$mids>=.1])/N

【讨论】:

    【解决方案2】:

    看看hist实际上给了你什么(见?hist):

    set.seed(10230)
    x<-hist(2*runif(1000)-1)
    > str(x)
    List of 6
     $ breaks  : num [1:11] -1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 ...
     $ counts  : int [1:10] 92 99 100 105 92 116 95 102 100 99
     $ density : num [1:10] 0.46 0.495 0.5 0.525 0.46 0.58 0.475 0.51 0.5 0.495
     $ mids    : num [1:10] -0.9 -0.7 -0.5 -0.3 -0.1 0.1 0.3 0.5 0.7 0.9
     $ xname   : chr "2 * runif(1000) - 1"
     $ equidist: logi TRUE
     - attr(*, "class")= chr "histogram"
    

    breaks 列表项告诉您“捕获”间隔的端点。 counts 项目告诉您这些中断定义的(少一个)箱中的计数。

    因此,为了尽可能接近您想要的仅使用您的 hist 对象,您可以这样做:

    sum(x$counts[which(x$breaks>=.1)-1L])/sum(x$counts)
    

    但是,正如@Frank 所说,这可能是不正确的,特别是如果包含 .1 的 bin 在 .1 处没有端点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-15
      • 2015-07-16
      • 1970-01-01
      • 2015-07-15
      相关资源
      最近更新 更多