我有一个类似于以下内容的数据集 -
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包,但我无法弄清楚如何完成这项工作。
答案 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