首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过从其他数据帧中组合来创建一个完整的数据框架。

通过从其他数据帧中组合来创建一个完整的数据框架。
EN

Stack Overflow用户
提问于 2018-06-28 09:34:31
回答 1查看 32关注 0票数 0

我试图创建两个新的列的人的年龄和他们的年龄组(5岁间隔),根据他们的出生日期从一个数据框架。例如,当前的数据框架:

代码语言:javascript
复制
Person      Date of Birth 
A             1/2/2000
B             3/2/1998
C             4/5/2008

预期结果是:

代码语言:javascript
复制
Person      Date of Birth     Age   Age-Group
A             1/2/2000        18    15-20
B             3/2/1990        28    25-30
C             4/5/2008        10    5-10

对于大数据集来说,在最有效的方法上做这件事的最好方法是什么?谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-28 09:44:37

像这样吗?顺便说一下,我稍微调整了你在你的例子中使用的年龄组,因为使用5-10和15-20意味着你也将使用11-14岁的年龄组,这对我来说很奇怪。

代码语言:javascript
复制
df <- read.table(text = "
Person      DateofBirth 
A             1/2/2000
B             3/2/1998
C             4/5/2008", header = T)

library(lubridate)

df$age <- interval(as.Date(df$DateofBirth, "%d/%m/%Y"), Sys.Date()) %/% years(1)
df$agegroup <- cut(df$age, seq(5,30,5), c("5-10", "11-15", "16-20", "21-25", "25-30"))
df

  Person DateofBirth age agegroup
1      A    1/2/2000  18    16-20
2      B    3/2/1998  20    16-20
3      C    4/5/2008  10     5-10

如果您有更多的年龄组,您还可以考虑将最后一个切分的论点概括如下:

代码语言:javascript
复制
df1 <- data.frame(age = 1:100)
df1$agegroup <- cut(df1$age, seq(0,100,5), paste0(seq(1,96, 5), "-", seq(5,100,5)))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51079440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档