R中的清洁数据

时间:2016-03-06 04:46:02

标签: r dplyr tidyr

我有一个类似于以下内容的数据集 -

Date     Customer      Cost      Location
1/2/15    Jon          $50       Sunnyvale, CA
1/5/15    Jon          $125      Sunnyvale, CA
1/15/15   Jon          $25       Sunnyvale, CA
1/3/15    Martha       $30       Fresno, CA
1/7/15    Martha       $40       Fresno, CA
2/16/15   James        $30       Tempe, AR
2/20/15   James        $70       Tempe, AR

我想转换成以下格式,其中每行向我提供有关单个客户的信息,他的最新到货日期,净支出,总发生次数并创建到货模式 -

Date     Customer     Mean ITA(days)    Frequency    Cost    Location
1/15/15    Jon        6.5                3          $200     Sunnyvale, CA
1/7/15     Martha     4                  2          $70      Fresno, CA
2/20/15    James      4                  2          $100     Tempe, AR

在R中做任何帮助都表示赞赏。我正在使用tidyr包,但我无法弄清楚如何完成这项工作。

1 个答案:

答案 0 :(得分:0)

正如alistaire指出的那样,你需要dplyr而不是tidyr。

library(dplyr)

df %>% 
  group_by(Customer) %>% 
  summarise(Frequency = n(), 
            Cost = sum(Cost),
            ITA = (max(Date) - min(Date))/2,
            Date = max(Date))
  Customer Frequency  Cost      ITA       Date
    (fctr)     (int) (dbl)   (dfft)     (date)
1    James         2   100 2.0 days 2015-02-20
2      Jon         3   200 6.5 days 2015-01-15
3   Martha         2    70 2.0 days 2015-01-07