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(…)
,其中…
是构造所有所需列的参数。首先,清理原始数据;您的日期不是日期对象,如果它们有$
,您的成本也不是数字。当你陷入困境时,请告诉我们,我们将为你指明正确的方向。