【发布时间】:2017-03-06 21:10:21
【问题描述】:
示例
df <- data.frame(
Birth_Date = c("1952-03-21", "1963-12-20", "1956-02-25", "1974-08-04", "1963-06-13", "1956-11-20", "1974-03-07", "1963-10-23", "1952-11-24", "1974-12-16"),
Items_Amount = c(68,189,69,19,299,79,149,149,29,189)
)
df
我正在尝试分析一个数据集,其中包含 Item_Amount(in $) 列和客户的出生日期跨 90 年。目标是根据合适的年龄组比较销售百分比。
主数据框包含从“1902-02-13”到“1991-12-11”的日期“BirthDate”列作为日期而不是字符串
'data.frame': 350241 obs. of 1 variable:
$ BirthDate: Date, format: "1964-06-08" "1964-06-08" "1964-06-08" "1964-06-08" ...
> min(Trans_Cust$Birth_Date)
[1] "1902-02-13"
> difftime(max(Trans_Cust$Birth_Date),min(Trans_Cust$Birth_Date),units = "auto")
Time difference of 32808 days
> max(Trans_Cust$Birth_Date)
[1] "1991-12-11"
如何根据“Birth_Date”列找到当前年龄,将其存储到新列“Present_ages”,然后继续计算按 present_ages 分组的sum(Items_Amount)。
【问题讨论】:
-
请确保在寻求帮助时提供reproducible examples。这里所需的输出到底是什么?这几十年你想做什么?
-
@MrFlick 添加了详细信息
-
您修改后的问题涉及agegroup01 - agegroup09,但您对数据的描述表明您的数据跨越10个十年。
-
我假设 agegroup01 是从“1902-02-13”到“1912-02-12”的第 1 个十年的第一个分位数,因此“1902-02-13”到“1991-12-11”会有 9 个分位数
-
不要发布数据图片。在我之前提供的链接中查看如何在问题本身中创建可重现的数据集。
标签: r datetime data-manipulation