R - 计算 bin 中特定值的数量

标签 r

我有一个如下所示的数据框(df):

Value <- c(1,1,0,2,1,3,4,0,0,1,2,0,3,0,4,5,2,3,0,6)
Sl <- c(1:20)
df <- data.frame(Sl,Value)    

> df
   Sl Value
1   1     1
2   2     1
3   3     0
4   4     2
5   5     1
6   6     3
7   7     4
8   8     0
9   9     0
10 10     1
11 11     2
12 12     0
13 13     3
14 14     0
15 15     4
16 16     5
17 17     2
18 18     3
19 19     0
20 20     6

我想从 df 中创建 4 个垃圾箱并计算 Value=0 的出现次数按 Sl 分组单独数据框中的值,如下所示:
Bin Count
1   1
2   2
3   2
4   1

我试图使用 tablecut创建所需的数据框,但不清楚我将如何指定 df$Value以及找到 0 的逻辑在这里
df.4.cut <- as.data.frame(table(cut(df$Sl, breaks=seq(1,20, by=5))))

最佳答案

使用您的 df

tapply(df$Value, cut(df$Sl, 4), function(x) sum(x==0))


> tapply(df$Value, cut(df$Sl, 4), function(x) sum(x==0))
(0.981,5.75]  (5.75,10.5]  (10.5,15.2]    (15.2,20] 
           1            2            2            1 

cut如果您愿意,您可以指定中断次数或中断本身,并且逻辑位于 tapply 中的函数定义中

关于R - 计算 bin 中特定值的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31981319/

相关文章:

r - 如何在 R 中存在恒定和线性时间趋势的情况下运行回归?

r - 如何评估 Rmarkdown 中的所有 block

r - 从单个 XML 创建多个 XML2 过滤

r - 在同一张图中绘制具有多个值的分布图

r - 通过引用相似的列名称,使用 Tidyr 的 Unite 组合多个列

根据 R 中的行号重组数据

从固定起点(和按组)开始的滚动平均值

r - 如何将数据框的行放在一起(选定的行自下而上)

阅读 R 中的 xlsx,其中包含有关时间的一栏。如何删除额外添加的日期R?

R - 基于匹配(模板)重新排序列