? ? ? 这是本人自编的一个简单的用于处理面板数据缺失值的R语言包,原理是对存在缺失值的面板数据的按顺序年份出现的第一个非缺失值,以及倒数的第一个非缺失值进行求年均增长率,然后用这个增长率与各年缺失值的前一个非缺失值进行运算得到用于填补缺失值的数值。下面是示例:
#使用自编线性插值函数补齐数据
#从github安装自编线性插值函数,如果已经安装了,则直接用Library命令加载
if (is.element('linput', installed.packages()[,1]) == FALSE) {
if(is.element('devtools', installed.packages()[,1]) == FALSE){
install.packages("devtools")
library(devtools)
}else if(is.element('devtools', installed.packages()[,1]) == TRUE){
library(devtools)
}
install_github("youngyaoguai/linput/linput")
library(linput)
help("linput")
}else if(is.element('linput', installed.packages()[,1]) == TRUE){
library(linput)
help("linput")
}
#安装并加载readxl包
install.packages("readxl")
library(readxl)
test <- read_xlsx("test.xlsx")
unlist(lapply(test, function(x) class(x))) #查看下year和income变量是否是数值型
linput(test,test$province,test$year,test$income,m = 0) #利用内插法插补缺失值
linput(test,test$province,test$year,test$income,m = 1) #利用外推法插补缺失值
原始数据如下:
?内插法命令的填补结果:
?外推法命令填补结果:
假如湖北省2001年没有位置,这个包会自动帮你补充上,并插补缺失值:
?
?
|