基础方法 | 数据管理:Stata与R语言的应用

Posted 来点方法

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础方法 | 数据管理:Stata与R语言的应用相关的知识,希望对你有一定的参考价值。

今天主要来带大家重温一下数据管理,并提供了Stata和R语言的操作。

 
数据管理的重要性
  • 一些初学者可能意识不到数据管理的重要性,认为数据到手,软件打开,就也可以死出模型,这种想法是大错特错的
  • 没有任何一份数据是能拿到手就做模型分析的,必须经过数据清理
  • 通常情况下无论多复杂的模型,他的命令也只会有一行,定量研究的工作基本全是在前期数据的清理。
  • 例如:所有的数据库中都不会有年龄变量,都需要根据出生年生成
 
数据管理如何做?Stata&R 语言应用
1. 缺失值的处理(处理为系统可识别)
一般而言数据中的缺失值以负数或者一个极端不可能值替代,例如99999 等,但是软件并不认为负数或极端数是缺失值,需要处理成软件可识别的缺失值,如果不处理软件会带入计算
Stata replace happy==. if happy==-8
R 语言:cgss$happy[cgss$happy == -8] <- NA
( 其中happy 为变量名)
2. 奇异值的识别:箱线图
一般在连续变量中奇异值存在的可能性比较大,例如收入。为什么要识别奇异值?
从统计上来说,奇异值的存在严重影响模型估计,最简单的理解是,有极大值存在,均值就会受到非常大的影响。
Stata gr box income
R 语言:boxplot(cgss$income)
( 其中income 为变量名)
3. 变量分布的识别
在回归分析中有一个重要的假定,就是变量要服从正态分布,我们可以通过直方图的形式来观察变量是否服从正太分布
Stata hist income
R 语言:hist(cgss$income)
( 其中income 为变量名)
4. 变量的生成
例如,一般的数据中都不会直接有年龄这一变量,均是报告的出生年份,所以年龄变量需要生成
 Stata gen age=2015-birth
R 语言:cgss$age<-2015-cgss$birth
( 其中birth 为变量名)
5. 样本的筛选
例如:我们研究只关心 60 岁以下的人群怎么办?或者专门研究老年人,该怎么办?
Stata keep if age>=60 # 只保留年龄在60 岁以上的样本
R 语言:cgss<-filter(cgss,cgss$age>=60)
6. 变量的重新编码
例如:性别变量在数据中的编码,男性=1 ,女性=2
但是一般情况下,我们会把女性编码0 ,男性编码为1 ,这样软件就会自动识别这是一个虚拟变量并把0 作为参照组,否则他会当做连续变量计算
Stata recode gender (1=1 " 男性")(2=0 " 女性"),gen(newgender)
R 语言:cgss$newgender<-as.factor(recode(as.numeric(cgss$gender),'2'=0,))
 
以上为大家总结了R 语言和Stata 中关于数据管理常用的命令,通过比较来看,二者在命令上有着一定的相似之处,总体而言Stata 更加简洁一些。



以上是关于基础方法 | 数据管理:Stata与R语言的应用的主要内容,如果未能解决你的问题,请参考以下文章

以基因名字合并两个数据集(R语言,merge函数)

可以不学习stata,只学习r语言吗

写为Stata文件时,R中应用的标签不保存

R语言游戏数据分析与挖掘:为啥要对游戏进行分析

R语言使用haven包的read_spss函数读取spss格式数据使用haven包的read_sas函数读取SAS格式数据使用haven包的read_dta函数读取Stata格式数据

R语言轻松搞定最常用的meta分析!复制粘贴就能拥有~