首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何按生日绑定/存储data.frame?

如何按生日绑定/存储data.frame?
EN

Stack Overflow用户
提问于 2021-01-06 20:16:03
回答 1查看 25关注 0票数 0

我有一个包含三列的data.frame :令牌、出生年份和联系人数量。生日从1934年到2020年,我不想要单独的年份,而是像2000-2005,2006-2010等5年组,以后可视化每个年龄组的联系人数。

我已经找到了像this这样的cut函数

代码语言:javascript
复制
# set up cut-off values 
breaks <- c(0,2,4,6,8,10,12,14,16,18,20)
# specify interval/bin labels
tags <- c("[0-2)","[2-4)", "[4-6)", "[6-8)", "[8-10)", "[10-12)","[12-14)", "[14-16)","[16-18)", "[18-20)")
# bucketing values into bins
group_tags <- cut(v$MeanEducation, 
                  breaks=breaks, 
                  include.lowest=TRUE, 
                  right=FALSE, 
                  labels=tags)

然而,在本例中,我必须手动设置一个包含中断和标签的向量。

有没有自动化的解决方案?例如,第一个存储桶在下一年开始,比我的数据帧中的最小值要小5整除。最高端的模拟。

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-06 20:22:22

默认情况下,您定义的tagscut函数创建,您不必手动添加它们。此外,您还可以使用seq创建中断序列,并使用paste以编程方式生成标签。

代码语言:javascript
复制
#Generate data
set.seed(123)
x <- sample(10)
x
#[1]  3 10  2  8  6  9  1  7  5  4
#Create breaks
breaks <- seq(0, 10, 2)
#Create labels
labels <- paste(head(breaks, -1), tail(breaks, -1), sep = '-')

#Without labels
cut(x, breaks)

#[1] (2,4]  (8,10] (0,2]  (6,8]  (4,6]  (8,10] (0,2]  (6,8]  (4,6]  (2,4] 
#Levels: (0,2] (2,4] (4,6] (6,8] (8,10]

#With labels
cut(x, breaks, labels)
#[1] 2-4  8-10 0-2  6-8  4-6  8-10 0-2  6-8  4-6  2-4 
#Levels: 0-2 2-4 4-6 6-8 8-10
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65595599

复制
相关文章

相似问题

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