R语言期末作业
========================
# 1 基本数据管理
## 1.1 设置当前工作目录
在D盘根目录下新建文件夹,名为testofR,然后设置此目录为当前工作目录。写出设置当前工作的R语句。
在当前工作目录中拷入数据文件cgss2008.dta及相关说明文件,此数据为stata格式,是2008年全国综合社会调查问卷的数据。
## 1.2 数据导入
在R中读入cgss2008.dta,并将该对象命名为cgss2008,在R中检验该对象是否为一数据框格式的对象。
## 1.3 数据提取
原cgss2008.dta是一个规模较大的数据,总个案数为6000,总变量数为1503。在进行具体分析之前,通常需要对数据进行提取,只选取需要的变量进行后续处理。cgss2008.dta中变量的命名方式同word文档“cgss2008A卷.doc”所示,但所有变量名称均为小写(word文档中为首字母大写)。请完成以下任务,并写出相关命令代码。
1. 使用names()命令检查cgss2008的前10个变量的名称,直观感受变量名称,并与word文档比较大小写的区别。
2. 定义新对象cgss.1,对照word文档,仅保留A1、A2、A3c、A17、A18、A21a、A21b这7个变量。
3. 使用head()命令观察cgss.1前10行观测的值。
## 1.4 变量重命名
观察word文档“cgss2008A卷.doc”,cgss.1中各变量对应的含义为如下表所示。请按表中“新名称”一列的名称,重新命名所有变量,然后再用head()命令确认重命名后的结果是否正确。
变量 | 含义 | 新名称
-------|-----------------|----------
a1 | 性别 | gender
a2 | 出生年份 | birth
a3c | 教育年限 | edu
a17 | 身高 | height
a18 | 体重 | weight
a21a | 07年职业收入 | salary
a21b | 07年职业外收入 | addsalary
## 1.5 变量重编码
观察增加了age变量后的数据,第5个观测的salary及addsalary是非常大且有规律的数,对照word文档,可以发现关于职业收入和职业外收入的编码有特殊规定。完成以下任务:
1. 对salary变量,将所有编码值大于9999997的值定义为缺失值。
2. 对addsalary变量,将所有编码值大于9999997的值定义为0。
3. 将改动后的结果保存至原有数据框,名称不变。
完成任务后,仍用head()命令检验结果是否正确。
## 1.6 创建新变量
1. 创建新变量earning,定义为salary与addsalary之和。
2. 原数据中有出生年份的信息,请将之转换为数据分析时的确切年龄,并将新变量命名为age,并将age变量保存在cgss.1中。注意,这里要求的是“数据分析时的确切年龄”,即要求命令能够实现如下效果(以某个案出生于1990年为例):当2013年进行数据分析时,其年龄为 2013−1990=23岁;当2014年进行数据分析时,其年龄为 2014−1990=24岁。
执行完毕后再次使用head()命令检查结果是否正确,所有结果仍保存至原数据框,且变量个数不得发生变动。
BMI指数(Body Mass Index,即身体质量指数,简称BMI),是用体重(千克)除以身高(米)的平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个参考标准。
成人的BMI数值参考值如下:
BMI | Classification
-----------------|---------------------------------
less than 18.5 | Underweight
18.5 to 24.99 | Normal Weight
25 to 29.99 | Overweight
30 to 34.99 | Obesity (Class 1)
35 to 39.99 | Obesity (Class 2)
40 or greater | Morbid Obesity
1. 根据公式BMI=weightheight2,其中建立新变量bmi。请注意数据框中的单位是否一致。
2. 按照上表,新建变量weightclass,将所有bmi值在相应区间内的个案,分别定义为“under”、“normal”、“over”、“obesity1”、“obesity2”、“morbid”。
## 1.7 变量排序
将cgss.1中的数据,先按age变量从低到高排序;同年龄者中,按身高从高到低排序。仍用head()命令检验前5个观测是否已得到正确处理。
========================
# 1 基本数据管理
## 1.1 设置当前工作目录
在D盘根目录下新建文件夹,名为testofR,然后设置此目录为当前工作目录。写出设置当前工作的R语句。
在当前工作目录中拷入数据文件cgss2008.dta及相关说明文件,此数据为stata格式,是2008年全国综合社会调查问卷的数据。
## 1.2 数据导入
在R中读入cgss2008.dta,并将该对象命名为cgss2008,在R中检验该对象是否为一数据框格式的对象。
## 1.3 数据提取
原cgss2008.dta是一个规模较大的数据,总个案数为6000,总变量数为1503。在进行具体分析之前,通常需要对数据进行提取,只选取需要的变量进行后续处理。cgss2008.dta中变量的命名方式同word文档“cgss2008A卷.doc”所示,但所有变量名称均为小写(word文档中为首字母大写)。请完成以下任务,并写出相关命令代码。
1. 使用names()命令检查cgss2008的前10个变量的名称,直观感受变量名称,并与word文档比较大小写的区别。
2. 定义新对象cgss.1,对照word文档,仅保留A1、A2、A3c、A17、A18、A21a、A21b这7个变量。
3. 使用head()命令观察cgss.1前10行观测的值。
## 1.4 变量重命名
观察word文档“cgss2008A卷.doc”,cgss.1中各变量对应的含义为如下表所示。请按表中“新名称”一列的名称,重新命名所有变量,然后再用head()命令确认重命名后的结果是否正确。
变量 | 含义 | 新名称
-------|-----------------|----------
a1 | 性别 | gender
a2 | 出生年份 | birth
a3c | 教育年限 | edu
a17 | 身高 | height
a18 | 体重 | weight
a21a | 07年职业收入 | salary
a21b | 07年职业外收入 | addsalary
## 1.5 变量重编码
观察增加了age变量后的数据,第5个观测的salary及addsalary是非常大且有规律的数,对照word文档,可以发现关于职业收入和职业外收入的编码有特殊规定。完成以下任务:
1. 对salary变量,将所有编码值大于9999997的值定义为缺失值。
2. 对addsalary变量,将所有编码值大于9999997的值定义为0。
3. 将改动后的结果保存至原有数据框,名称不变。
完成任务后,仍用head()命令检验结果是否正确。
## 1.6 创建新变量
1. 创建新变量earning,定义为salary与addsalary之和。
2. 原数据中有出生年份的信息,请将之转换为数据分析时的确切年龄,并将新变量命名为age,并将age变量保存在cgss.1中。注意,这里要求的是“数据分析时的确切年龄”,即要求命令能够实现如下效果(以某个案出生于1990年为例):当2013年进行数据分析时,其年龄为 2013−1990=23岁;当2014年进行数据分析时,其年龄为 2014−1990=24岁。
执行完毕后再次使用head()命令检查结果是否正确,所有结果仍保存至原数据框,且变量个数不得发生变动。
BMI指数(Body Mass Index,即身体质量指数,简称BMI),是用体重(千克)除以身高(米)的平方得出的数字,是目前国际上常用的衡量人体胖瘦程度以及是否健康的一个参考标准。
成人的BMI数值参考值如下:
BMI | Classification
-----------------|---------------------------------
less than 18.5 | Underweight
18.5 to 24.99 | Normal Weight
25 to 29.99 | Overweight
30 to 34.99 | Obesity (Class 1)
35 to 39.99 | Obesity (Class 2)
40 or greater | Morbid Obesity
1. 根据公式BMI=weightheight2,其中建立新变量bmi。请注意数据框中的单位是否一致。
2. 按照上表,新建变量weightclass,将所有bmi值在相应区间内的个案,分别定义为“under”、“normal”、“over”、“obesity1”、“obesity2”、“morbid”。
## 1.7 变量排序
将cgss.1中的数据,先按age变量从低到高排序;同年龄者中,按身高从高到低排序。仍用head()命令检验前5个观测是否已得到正确处理。

