【问题标题】:How do you combine two data frames with quantities of items in R?你如何将两个数据框与 R 中的项目数量结合起来?
【发布时间】:2020-03-01 23:34:15
【问题描述】:

我在R 工作,使用包含项目数量(非负整数)的数据框。这是一个名为BASKET1BASKET2 的两个数据帧的示例。在这两种情况下,只有数量至少为一个的项目才会出现在数据框中。项目按字母顺序出现在每个数据框中。

BASKET1
    Vegetable  Quantity
1     Carrots         3
2   Cucumbers         2
3    Parsnips         5
4      Celery         1
5      Onions        12

BASKET2
    Vegetable  Quantity
1     Carrots        10
2      Onions         6
3     Rhubarb         2

我正在尝试创建一个函数,将两个篮子的物品组合成一个篮子,将两个篮子中的所有物品相加。这是一种合并操作,只是我实际上想对篮子中的数量求和。使用unique函数获取项目列表非常简单:

VEGETABLES <- unique(BASKET1$Vegetable, BASKET2$Vegetable);

我很难找到一种简单的方法来获取与该项目向量相对应的数量向量,以构建组合篮子的数据框。我认为有一种方法可以使用某种简单的查找查询来做到这一点,但是我尝试过的所有方法都会导致代码很麻烦。


问题:找到与项目组合向量相对应的量向量的最简单方法是什么?

【问题讨论】:

  • 试试aggregate(Quantity ~ Vegetable, rbind(BASKET1,BASKET2), sum)
  • 是的,akrun 是对的。您基本上想要制作一个大的“长”数据文件,其中每个VegetableQuantity 都有多个条目。然后,您可以使用多种方法按组获取总和 - aggregate 是一种常见方法。

标签: r dataframe merge


【解决方案1】:

我们可以使用rbind rbind 两个数据集和aggregate 得到'Vegetable' 的'Quantity' 的sum

aggregate(Quantity ~ Vegetable, rbind(BASKET1,BASKET2), sum)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-25
    • 2016-02-23
    • 1970-01-01
    • 2013-10-21
    • 2021-11-13
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    相关资源
    最近更新 更多