关于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答案 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))
答案 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