温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

R语言怎样以中国综合社会调查2010数据为例实现出生日期转换为年龄:

发布时间:2021-11-22 15:46:39 来源:亿速云 阅读:490 作者:柒染 栏目:大数据

这期内容当中小编将会给大家带来有关R语言怎样以中国综合社会调查2010数据为例实现出生日期转换为年龄:,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

数据      

以中国综合社会调查(cgss)2010数据为例,数据是以下形式的:

R语言怎样以中国综合社会调查2010数据为例实现出生日期转换为年龄:

如上图展示的数据,调查项目很多(有上百个选项),需要我们选取所需的变量进行研究,另外部分数据是字符型的(如城市、是否、男女),还存在缺失值等等,这些都需要我们去进行整理与清洗,得到结构性的数据作下一步分析。


       

2


       
读取文件并作出初步处理

1.文件“cgss2010”数据

在R中输入如下代码,先设置工作路径:

setwd("D:/R回归")getwd()

然后读取文件:

data <- read.csv("cgss2010.csv", header = T, encoding="UTF8", na.strings = "NA")

2.经过筛选变量、抽取部分样本与缺失值处理等步骤,最终得到文件:

names(data)data1<-subset(data, select=c("ID","S5","S41","A2","A3A","A3B" ,"A3C","A4","A7A","A15","A8A","A36","L6A") )names(data1)set.seed(1)data2=data1[sample(nrow(data1), 300),] #随机抽样 300个样本dim(data2)head(data2,5) #展示前5行数据is.na(data2) #查询数据集中是否存在缺失数据colSums(is.na(data2)) #查询每列的缺失值数量rowSums(is.na(data2)) #显示缺失数据的行nrow(data2) #显示行数data_trimmed <-na.omit(data2) #剔除缺失值nrow(data_trimmed)data_trimmed

以上代码过程可参见《R语言的数据处理与数据清洗:以中国综合社会调查(cgss)2010数据为例》。


       

3


       
出生日期转换为年龄        

出生日期的数据呈现如下:

R语言怎样以中国综合社会调查2010数据为例实现出生日期转换为年龄:

A3A、A3B、A3C分别代表出生年、月、日,若转换为年龄,还需把这三个变量合并在一起,并转换成日期格式,具体命令如下:

playdatetime <- paste(data_trimmed$A3A,data_trimmed$A3B,data_trimmed$A3C)playdatetimeplaydatetime <- lubridate::parse_date_time(playdatetime,"%y-%m-%d")playdatetimedatetime <- as.Date(playdatetime,format="%Y-%m-%d")

这里paste可以将任意数量的参数组合在一起;

lubridate::parse_date_time中

lubridate包

该主要有两类函数,一类用于处理时点数据(timeinstants),另一类则用于处理时段数据(time spans)。

parse_date_time是其中的函数,它可以将格式各样的日期时间字符转换为日期时间类型的数据。该函数中有一个重要的参数,即orders,通过该参数指定可能的日期格式顺序,如年-月-日或月-日-年等顺序;

as.Date就是把数据转化成日期格式,以便于其他日期进行加减计算。

接下来就是以某个时间段为截止点,进行年龄计算,命令如下:

today <- "2021-02-28"today <- rep(today,length(data_trimmed$A3A))tod =as.Date(today,format="%Y-%m-%d")todday <- tod - datetimeage <- round(day/365)age

rep就是把today重复输出,然后用as.Date转化成日期格式;

最后就进行相减的计算;

得到的数值是多少天,而不是多少年或者多少岁,所以用day/365,转换成多少岁,round()是取整数。

以上就会得到变量年龄的数值。

上述就是小编为大家分享的R语言怎样以中国综合社会调查2010数据为例实现出生日期转换为年龄:了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI