聚合和求和数据帧

  • 本文关键字:数据帧 求和 r
  • 更新时间 :
  • 英文 :


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

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,:参数必须具有相同的长度呼叫:-&gt->合计->聚合数据帧执行已停止

我应该如何通过索引引用列?

我是R的新手,我想我不太了解如何逐列引用数据帧。我看到的所有例子都使用名称。我无法很好地缩小搜索范围,因此提出了这个问题。

使用[1,],您是在设置行而不是列。使用[,1],可以选择第一列作为矢量。使用[1],您可以选择第一列作为数据帧。

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

我们也可以在aggregate中使用公式方法

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

最新更新