R中的清理数据

R中的清理数据,r,dplyr,tidyr,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

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

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软件包,但无法找出如何完成这项工作

正如alistaire所指出的,你需要的是dplyr,而不是tidyr

library(dplyr)

df %>% 
  group_by(Customer) %>% 
  summarise(Frequency = n(), 
            Cost = sum(Cost),
            ITA = (max(Date) - min(Date))/2,
            Date = max(Date))

正如alistaire所指出的,您需要dplyr,而不是tidyr

library(dplyr)

df %>% 
  group_by(Customer) %>% 
  summarise(Frequency = n(), 
            Cost = sum(Cost),
            ITA = (max(Date) - min(Date))/2,
            Date = max(Date))

什么是ITA?如何计算它?首先,学习如何转换日期,然后学习如何使用dplyr,特别是它的
summary
命令。(非常确定
ITA=(最后一个(日期)-第一个(日期))/n()
以防有人对此感到困惑)通常,使用
dplyr
您需要
df%>%groupby(Customer,Location)%%>%summary(…)
,其中
是构造所有所需列的参数。首先,清理原始数据;您的日期不是日期对象,如果它们有
$
,您的成本也不是数字。当你陷入困境时,请告诉我们,我们将为你指明正确的方向。ITA是什么?如何计算它?首先,学习如何转换日期,然后学习如何使用dplyr,特别是它的
summary
命令。(非常确定
ITA=(最后一个(日期)-第一个(日期))/n()
以防有人对此感到困惑)通常,使用
dplyr
您需要
df%>%groupby(Customer,Location)%%>%summary(…)
,其中
是构造所有所需列的参数。首先,清理原始数据;您的日期不是日期对象,如果它们有
$
,您的成本也不是数字。当你陷入困境时,请告诉我们,我们将为你指明正确的方向。