我有一个数据框(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=0按Sl值分组的次数,如下所示:
Bin Count
1 1
2 2
3 2
4 1
Run Code Online (Sandbox Code Playgroud)
我试图使用table和cut创建欲望数据框架,但不清楚我将如何指定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)
使用您的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