R 对数据帧进行聚合和求和

R 对数据帧进行聚合和求和,r,R,我想在一个数据帧上进行聚合,并按类别进行汇总。我有这个 my_basket = data.frame(ITEM_GROUP = c("Fruit","Fruit","Fruit","Fruit","Fruit","Vegetable","Vegetable","Vegetable","Vegetable","

我想在一个数据帧上进行聚合,并按类别进行汇总。我有这个

my_basket = data.frame(ITEM_GROUP = c("Fruit","Fruit","Fruit","Fruit","Fruit","Vegetable","Vegetable","Vegetable","Vegetable","Dairy","Dairy","Dairy","Dairy","Dairy"),
                       ITEM_NAME = c("Apple","Banana","Orange","Mango","Papaya","Carrot","Potato","Brinjal","Raddish","Milk","Curd","Cheese","Milk","Paneer"),
                       Price = c(100,80,80,90,65,70,60,70,25,60,40,35,50,120),
                       Tax = c(2,4,5,6,2,3,5,1,3,4,5,6,4,3))
aggregate(x = my_basket[3,], by = list(my_basket[1,]), FUN = sum)
但是告诉我这件事给了我一个错误

aggregate.data.frame(x=my_basket[3,],by=list)中出错(my_basket[1,: 参数必须具有相同的长度 调用:->->aggregate->aggregate.data.frame 停止执行

我应该如何按索引引用列


我是R新手,我想我不太明白如何按列引用数据帧。我看到的所有示例都使用名称。我不能很好地缩小搜索范围,因此这个问题。

使用
[1,]
可以将行而不是列子集。使用
[,1]
可以选择第一列作为向量。使用
[1]
选择第一列作为data.frame

aggregate(x = my_basket[3], by = my_basket[1], FUN = sum)
#  ITEM_GROUP Price
#1      Dairy   305
#2      Fruit   415
#3  Vegetable   225

使用
[1,]
可以对行而不是列进行子集设置。使用
[,1]
可以选择第一列作为向量。使用
[1]
可以选择第一列作为data.frame

aggregate(x = my_basket[3], by = my_basket[1], FUN = sum)
#  ITEM_GROUP Price
#1      Dairy   305
#2      Fruit   415
#3  Vegetable   225

我们也可以在聚合中使用公式法

aggregate(Price ~ ITEM_GROUP, my_basket, FUN = sum)

我们也可以在聚合中使用公式法

aggregate(Price ~ ITEM_GROUP, my_basket, FUN = sum)
你想要:
aggregate(x=my\u basket[3],by=my\u basket[1],FUN=sum)
?我知道这很简单(但我已经尝试了很多次了,以至于我的头脑都被震晕了)。谢谢。请创建一个答案,我会接受。你想要:
aggregate(x=my\u basket[3],by=my\u basket[1],FUN=sum)
?我知道这很简单(但我已经尝试了很多次了,我的想法都被吹走了)。谢谢。请创建一个答案,我会接受的。