【问题标题】:Re-structuring data based on time-stamps and unique IDs in R在 R 中基于时间戳和唯一 ID 重构数据
【发布时间】:2015-01-22 14:29:03
【问题描述】:

我正在处理一个大型数据集(超过 1000 万个案例),其中每个案例代表给定产品(有 17 种产品)的销售月度交易。因此,每家商店可能代表 204 个案例(12 个月 * 17 种产品销售量;请注意,并非所有商店全年都销售全部 17 种产品)。

我需要重组数据,以便每个产品交易都有一个案例。这将导致每个商店仅代表 17 个案例。

理想情况下,我希望创建 12 个月内交易的平均值。

更具体地说,数据集目前有 5 个变量:

  • 商店位置 - 一个独特的 6 位序列
  • 月 — 2013_MM(数据仅来自 2013 年)
  • 售出的单位数总利润 (£)
  • 产品类型 - 17 种不同的产品类型(这是一个字符串 变量)

我在 R 中工作。最好将这个重组后的数据集保存到数据框中。

我认为 if/for 循环可以工作,但我不确定如何让它工作。

非常感谢任何建议或想法。如果您需要更多信息,请尽管询问!

亲切的问候,

R

【问题讨论】:

  • 请提供一个独立的最小示例。检查这些链接以获得一般想法,以及如何在 R 中进行操作:herehereherehere。还请告诉我们code you have tried 并解释为什么它不能满足您的需求。
  • 要添加到 Henrik 的评论中,请在您的问题中插入 dput(head(YOUR_DATA_SET))。听起来您只是想执行一个简单的group_by

标签: r dataframe structure


【解决方案1】:

这里确实没什么可处理的,但这就是我的解释导致的结果......您正在寻找按 shop_location 和 product_type 分组的数据集

# install.packages('dplyr')
library(dplyr)

your_data_set <- xxx

your_data_set %>%
  group_by(shop_location, product_type) %>%
  summarise(profit = sum(total_profit),
            count = n(),
            avg_profit = profit/count)

【讨论】:

  • 这看起来很不错,谢谢。我不能在我的计算机上尝试它,但我想知道您所说的“%>%”运算符是什么意思?
  • 这是dplyr 库中的链接函数。基本上,它允许您编写一个连续函数,而不是在沿途的每一步声明变量。看这里:cran.r-project.org/web/packages/dplyr/dplyr.pdf
猜你喜欢
  • 2014-04-17
  • 2013-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 2017-01-23
  • 2016-12-23
相关资源
最近更新 更多