R实现从身份证号码中获取 出生年月,年龄,性别

本文介绍了一种使用R语言从身份证号码中提取出生日期和性别信息的方法。通过stringr包截取身份证号的特定部分,计算年龄并确定性别。该过程涉及数据读取、字符串操作和数据框创建。
setwd("C:/Users/zmj/Desktop")
chuli=read.csv("chuli.csv")
library(stringr)
sfz<-chuli[,1]
sfz
data=as.numeric(str_sub(sfz,7,14))
sfz2=2019-floor(data/10000) 
sex=as.numeric(str_sub(sfz,-2,-2))
sex
gender<-NA
gender[sex%%2==0]="女"
gender[sex%%2==1]="男"

output=data.frame(data,sfz2,gender)
write.csv(output,file = "output.csv")

首先通过stringr包中的str_sub截取身份证的7-14位数字,这样就可以获得出生年月。

data=as.numeric(str_sub(sfz,7,14))

计算年龄我是直接用出生年月/10000,取下限计算年份,
sfz2=2019-floor(data/10000)
也可以直接在身份证上面截取年份
sfz2=2019-str_sub(sfz,7,10)

最后是性别,我只用判断身份证倒数第二位是奇数还是偶数即可,这里我只想得到模运算,算余数

gender[sex%%2==0]="女"
gender[sex%%2==1]="男"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值