【问题标题】:Data Wrangling - R - Want to remove rows which corresponds between fyweek and launchweekData Wrangling - R - 想要删除在 fyweek 和 launchweek 之间对应的行
【发布时间】:2018-11-06 05:03:03
【问题描述】:

寻找解决方案来删除 FY_Week 和 Launch_Week 之间的几周内的行。每行对应一个 product_ID,如下表所示:-

目标是 - 不考虑黄色阴影行(属于 fy_week 和发布周之间的周的记录)。我们想汇总平均销售额。在 r 中寻找解决方案。提前致谢 :) Dataset

【问题讨论】:

  • 你可以使用 ifelse 来做这个。
  • 您的链接不包含数据集 - 它仅包含带有一些数字的图片。如果你想让我们做你的工作,你至少需要提供原材料。
  • 我发布了一个答案,但我下次同意上述评论

标签: r dataframe data-science data-manipulation


【解决方案1】:

这是使用 dplyr 的答案。

library(dplyr)

重新创建数据:

data <- tibble(
  product_id = rep(c("abc1", "abc2"), each = 3),
  FYWeek = rep(c(20, 22), each = 3),
  Launch_Week = rep(c(30, 28), each = 3),
  Week = c(21, 31, 32, 25, 29, 26),
  Sale = c(453, 408, 473, 466, 473, 412)
)

丢弃不符合条件的行并获取剩余行的Sale 的平均值:

data %>% 
  filter(Week < FYWeek | Week > Launch_Week) %>%
  mutate(avg = mean(Sale))

# A tibble: 3 x 6
  product_id FYWeek Launch_Week  Week  Sale   avg
  <chr>       <dbl>       <dbl> <dbl> <dbl> <dbl>
1 abc1           20          30    31   408  451.
2 abc1           20          30    32   473  451.
3 abc2           22          28    29   473  451.

【讨论】:

  • 请注意您的意思是“并且我们希望汇总平均销售额”。我将其解释为您想要销售所选行的平均值。这就是avg 变量给出的结果(当然到处都是相同的值,因为它是平均值)
猜你喜欢
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 2020-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-08
相关资源
最近更新 更多