如何找到一个间隔内的观测次数?

时间:2018-08-22 16:47:41

标签: r

我已经通过使用以下命令获得了表格和直方图:

> csvfile=read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv", sep=";")
> hist(csvfile$fixed.acidity)

直方图

enter image description here

现在,我需要找到该直方图中落入bin(7,8]的观测值的数量

我写了一个函数:

num=0
for(i in fixedacidity)
{
  if((i>7)&(i<=8))
  {
    num<-num+1
  }
}
print(num)

但有一条警告消息:

Warning message:
In if ((i > 7) & (i <= 8)) { :
  the condition has length > 1 and only the first element will be used

我的代码有什么问题,并且库中有要做的事情?

4 个答案:

答案 0 :(得分:2)

hist()与参数plot=FALSE一起使用:

hist(x=1:100, breaks=10, plot=FALSE)

这将返回一个列表。您要查找的数据在列表元素counts中:

hist(...)$counts

在您的特定情况下,这是:

hist(csvfile$fixed.acidity, plot=F)$counts[4]

答案 1 :(得分:1)

或者,可以使用tidyverse获取所有组中的观察次数:

Class MyClass
{
    [String]$foo
    [int]$bar
}
Class MyClassList : System.Collections.Generic.List[MyClass]
{
}

答案 2 :(得分:0)

执行此操作并获取所有bin(bin长度为1)的观测次数的另一种方法:

require(tidyverse)    
csvfile %>% count(interval = cut_interval(fixed.acidity,length = 1))

答案 3 :(得分:0)

获取直方图中的bin频率的另一种方法是使用labels=TRUE中的hist()参数将它们打印在频率条的顶部。

 csvfile=read.csv("https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv", sep=";")
 hist(csvfile$fixed.acidity,labels=TRUE)

...以及输出:

enter image description here