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

Joa*_*mal 5 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
Run Code Online (Sandbox Code Playgroud)

我想创建4个bin,df并计算在单独的数据框中Value=0Sl值分组的次数,如下所示:

Bin Count
1   1
2   2
3   2
4   1
Run Code Online (Sandbox Code Playgroud)

我试图使用tablecut创建欲望数据框架,但不清楚我将如何指定df$Value和在0这里找到s 的逻辑

df.4.cut <- as.data.frame(table(cut(df$Sl, breaks=seq(1,20, by=5))))
Run Code Online (Sandbox Code Playgroud)

mts*_*mts 4

使用您的df

tapply(df$Value, cut(df$Sl, 4), function(x) sum(x==0))
Run Code Online (Sandbox Code Playgroud)

给出

> 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 
Run Code Online (Sandbox Code Playgroud)

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