我有一个数据框 df 并想使用 A 列中的数据对行进行分箱,然后对于每个箱,计算一个值出现在另一列 B 中的次数。这是一个仅使用 2 列的示例(尽管我的真实示例有很多列):
A B
5.4
4.6 36_8365
2.4
3.6
0.6
8.9 83_7433
4
7.6
4.7 54_3874
1.5 54_8364
我想在 A 列中查找所有小于 1、大于 1 但小于 2 的值,依此类推,对于每个 bin,我想计算一个值在 B 列中出现的次数。对于上表,这将给出以下结果:
Class Number
<1 0
1<=A<2 1
2<=A<3 0
3<=A<4 0
4<=A<5 2
5<=A<6 0
6<=A<7 0
7<=A<8 0
8<=A<9 1
9<=A<10 0
以下内容很接近,但是当我只想计算它们时,它将对这些值求和:
with(df, sum(df[A >= 1 & A < 2, "B"]))
我不确定用什么代替“总和”来获得计数,而不是总和。我知道我可以通过使用来识别 B 列中的哪些行具有值
thing <- B==''
或使用
thing_table <- table(B=='')
但是,我不确定如何搜索 A 列,测试该值是否介于其他 2 个值之间,然后计算 B 中符合这些条件的项目。谁能指出我正确的方向?
谢谢!