R 按组聚合行\u按条件

R 按组聚合行\u按条件,r,dplyr,R,Dplyr,如果可能的话,我想在dplyr中解决这个问题 我有一个数据框: Item Count Bike Tire 15 Car Tire 6 H. Window 3 S. Windows 7 Spare Tires 1 Widget X 88 Widget Z 34 ... 我希望获得要聚合到的数据帧: Item Count Tires 22 H. Window 3 S. Windows 7 Widget X 88

如果可能的话,我想在dplyr中解决这个问题

我有一个数据框:

Item         Count
Bike Tire    15
Car Tire     6
H. Window    3
S. Windows   7
Spare Tires  1
Widget X     88
Widget Z     34
...
我希望获得要聚合到的数据帧:

Item       Count
Tires      22
H. Window  3
S. Windows 7 
Widget X   88
Widget Z   34
...
我得到了这个far-filterdata,greplglob2rx*tire*,data$Item,ignore.case=TRUE,这样我就可以看到哪些行会匹配,但是我如何才能对_进行分组,以便在示例中聚合数据?我可能也会对其他项目执行相同的操作,但只想先了解基本情况。

这里有一个选项,可以将组中具有“tire”子字符串的“Item”替换为“Tires”,并获得“Count”的总和

library(dplyr)
df1 %>%
   group_by(Item = replace(Item, grepl("Tire", Item), "Tires")) %>%
   summarise(Count = sum(Count))
# A tibble: 5 x 2
#  Item       Count
#  <chr>      <int>
#1 H. Window      3
#2 S. Windows     7
#3 Tires         22
#4 Widget X      88
#5 Widget Z      34
这里有一个选项可以将组_by中具有“tire”子字符串的“Item”替换为“Tires”,并获得“Count”的总和

library(dplyr)
df1 %>%
   group_by(Item = replace(Item, grepl("Tire", Item), "Tires")) %>%
   summarise(Count = sum(Count))
# A tibble: 5 x 2
#  Item       Count
#  <chr>      <int>
#1 H. Window      3
#2 S. Windows     7
#3 Tires         22
#4 Widget X      88
#5 Widget Z      34

“你是说轮胎吗?”肖恩:对不起,是轮胎。UpdatedSo最终会首先进行替换,此时group_by实际上只是一个显式的group by=项。您还可以在group by之外进行替换,只保留group_byItem。这很有意思。@Shawn是的,你可以在变异中做,然后做分组,但我想我会取消一步你是说轮胎吗?@Shawn抱歉,是轮胎。UpdatedSo最终会首先进行替换,此时group_by实际上只是一个显式的group by=项。您还可以在group by之外进行替换,只保留group_byItem。这很有趣。@Shawn是的,你可以在变异中做,然后做分组,但我想我会消除一个步骤