如何将频率高于和低于某个值

时间:2014-09-25 17:05:42

标签: r histogram

关于R中的binning有很多问题,但我没有遇到过这个特殊问题。我有一个数字列表,并希望将频率< = 2和> 2。

分开

为了澄清我需要一个直方图,其中包含两个由值< = 2和> 2组成的箱柜。

我的变量是

Var = a
 [1] 2 2 1 0 1 1 1 1 1 3 2 3 3 5 1 4 4 0 3 4 1 0 3 3 0 0 1 3 2 6 2 2 2 1
[35] 0 2 3 2 0 0 0 0 3 2 2 4 3 2 2 0 4 1 0 1 3 1 4 3 1 2 6 7 6 1 2 2 4 5
[69] 3 0 6 5 2 0 7 1 7 3 1 4 1 1 2 1 1 2 1 1 4 2 0 3 3 2 2 2 5 3 2 5 2 5

我可以将数字整理成表格,以查看每个数字的频率

a = table(var)

        Var1     Freq
    1   0     15
    2   1     23
    3   2     25
    4   3     17
    5   4     9
    6   5     6
    7   6     4
    8   7     3

现在如何为值< = 2和> 2?

添加bin

2 个答案:

答案 0 :(得分:2)

你可以这样做:

ct  <- cut(a, breaks = c(0, 2, max(a)), include.lowest=TRUE, labels=c("<=2", ">2"))
## [1] <=2 <=2 <=2 <=2 <=2 <=2 <=2 <=2 <=2 >2  <=2 >2  >2  >2  <=2 >2  >2  <=2
## [19] >2  >2  <=2 <=2 >2  >2  <=2 <=2 <=2 >2  <=2 >2  <=2 <=2 <=2 <=2 <=2 <=2
## [37] >2  <=2 <=2 <=2 <=2 <=2 >2  <=2 <=2 >2  >2  <=2 <=2 <=2 >2  <=2 <=2 <=2
## [55] >2  <=2 >2  >2  <=2 <=2 >2  >2  >2  <=2 <=2 <=2 >2  >2  >2  <=2 >2  >2 
## [73] <=2 <=2 >2  <=2 >2  >2  <=2 >2  <=2 <=2 <=2 <=2 <=2 <=2 <=2 <=2 >2  <=2
## [91] <=2 >2  >2  <=2 <=2 <=2 >2  >2  <=2 >2  <=2 >2 
## Levels: <=2 >2

table(ct)
## ct
## <=2  >2 
## 63   39

你可以使用barplot作为@ user20650建议来绘制它:

barplot(table(ct))

enter image description here

答案 1 :(得分:1)

当您将矢量分成两部分时,可以通过将不等式语句直接应用于矢量来创建组。要绘制表格,您可以使用barplot

set.seed(1)     
var <- sample(1:10, 100, T)

(tab <- table(var<=2))
#FALSE  TRUE 
#   87    13 

barplot(tab)

或直接

barplot(table(var<=2))

对于更多类别,可以使用cut

对矢量进行分类