楼主: youngyaoguai
3392 9

[学习分享] 自编R包学习:R语言插补面板经济数据 [推广有奖]

  • 1关注
  • 1粉丝

已卖:1138份资源

讲师

18%

还不是VIP/贵宾

-

威望
0
论坛币
2204 个
通用积分
589.2945
学术水平
45 点
热心指数
55 点
信用等级
45 点
经验
11547 点
帖子
156
精华
0
在线时间
648 小时
注册时间
2014-12-15
最后登录
2025-6-10

楼主
youngyaoguai 学生认证  发表于 2021-12-8 09:39:33 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
【使用过程中有什么问题,请及时将测试数据发到1270950448@qq.com,方便我测试BUG】这是本人自编的一个简单的用于处理面板数据缺失值的R语言包,原理是对存在缺失值的面板数据的按顺序年份出现的第一个非缺失值,以及倒数的第一个非缺失值进行求年均增长率,然后用这个增长率与各年缺失值的前一个非缺失值进行运算得到用于填补缺失值的数值。
由于网络限制问题,暂时没法把最新版3.0.3传到Github,先传百度云盘,请各位手动安装下就行。
链接:https://pan.baidu.com/s/15A2Iuc2BzhpTaMRT4z75bg

提取码:vy7p【计算的简单原理】可用以下公式进行年均增长率的测算:


其中endvalue即末期的数值,startvalue即初期数值,中间各期均为空值,也就是只知道初期和末期数值的情况下来测算年均增长率。
如果只根据第i年以及年均增长率来计算第i+1年的值,此时_value就是startvalue,那么就是下面的计算公式:
test.png


公式(2)即为本文的计算方法,即先基于第一个非空值的i位数,计算其顺数下一个数即第i+1位的估计值,接着调用循环代码基于第i+1位估计值,计算第i+2位估计值,以此类推。
本程序包最多可以计算中间有10个空值的情形,如需拓展功能还需要读者自行修改源代码。
下面是图示:
linput.png




下面是示例:
  1. #使用自编线性插值函数补齐数据
  2. #从github安装自编线性插值函数,如果已经安装了,则直接用Library命令加载
  3. if (is.element('linput', installed.packages()[,1]) == FALSE) {
  4.   if(is.element('devtools', installed.packages()[,1]) == FALSE){
  5.     install.packages("devtools")
  6.     library(devtools)
  7.   }else if(is.element('devtools', installed.packages()[,1]) == TRUE){
  8.     library(devtools)
  9.   }
  10.   install_github("youngyaoguai/linput/linput3.0.2")
  11.   library(linput)
  12.   help("linput")
  13. }else if(is.element('linput', installed.packages()[,1]) == TRUE){
  14.   library(linput)
  15.   help("linput")
  16. }
  17. #安装并加载readxl包
  18. install.packages("readxl")
  19. library(readxl)
  20. test <- read_xlsx("test.xlsx")
复制代码

原始数据如下: linput包原始数据.jpg

内插法命令的填补结果:
linput包填补结果内推法.jpg

外推法命令填补结果:
linput包填补结果外插法.jpg

假如湖北省缺了2001年,这个包会自动帮你补充上,保持每一年都有位置,然后插补缺失值:
湖北缺失.jpg 湖北填充.jpg

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:经济数据 R语言 installed Packages install

沙发
youngyaoguai 学生认证  发表于 2021-12-8 10:44:34
微信截图_20211208104501.jpg

藤椅
512661101 发表于 2021-12-10 03:09:49 来自手机
youngyaoguai 发表于 2021-12-8 09:39
这是本人自编的一个简单的用于处理面板数据缺失值的R语言包,原理是对存在缺失值的面板数据的按顺序年份出现 ...

板凳
512661101 发表于 2021-12-10 03:10:05 来自手机
youngyaoguai 发表于 2021-12-8 09:39
这是本人自编的一个简单的用于处理面板数据缺失值的R语言包,原理是对存在缺失值的面板数据的按顺序年份出现 ...

报纸
三重虫 发表于 2021-12-18 17:16:51

地板
youngyaoguai 学生认证  发表于 2022-4-19 21:08:07
欢迎大家继续测试

7
youngyaoguai 学生认证  发表于 2022-5-2 12:24:59
【2022.5.2说明】近来较多朋友反映包的使用出了一些问题,经过和北京林业大学经济管理学院的梁晨同学多次讨论和测试,推出本R包的3.0.4版。

【linput3.0.4包的说明】修复了评论区中出现的BUG。

【linput3.0.4包作者信息】1.杜云晗.西南财经大学经济学院政治经济学 2.梁晨.北京林业大学经济管理学院经济统计学

【其他说明】linput包的m参数设置为0即为只用内插法,为1即为用了内插法后用外推法。

外推法基于第一个有数值的年份和最后一个有数值的年份进行年均增长率测算然后外推,如果第一个有数值的年份大于等于最后一个有数值的年份,如500(1987)和300(1997);500(1987)和500(1997)等情形则外推失败。

【使用过程中有什么问题,请及时将测试数据发到1270950448@qq.com,方便我测试BUG】这是本人自编的一个简单的用于处理面板数据缺失值的R语言包,原理是对存在缺失值的面板数据的按顺序年份出现的第一个非缺失值,以及倒数的第一个非缺失值进行求年均增长率,然后用这个增长率与各年缺失值的前一个非缺失值进行运算得到用于填补缺失值的数值。

由于网络限制问题,暂时没法把最新版3.0.4传到Github,先传百度云盘,请各位手动安装下就行。

链接:https://pan.baidu.com/s/1cCSy_ysiFj1NqLDygUmWBA
提取码:czf2

8
youngyaoguai 学生认证  发表于 2022-5-2 15:17:37
Github又能上传了,再放一个Github的下载源:

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/linput3.0.4")
  library(linput)
  help("linput")
}else if(is.element('linput', installed.packages()[,1]) == TRUE){
  library(linput)
  help("linput")
}
  library(linput)
  help("linput")

9
youngyaoguai 学生认证  发表于 2022-5-5 10:00:10
【2022.5.5说明】增加了一行命令清除内存中的临时数据集

【linput3.0.6】百度网盘链接:https://pan.baidu.com/s/1SeLBKp933RKFu_J01O6eIA
提取码:xna4

1.增加了测试数据集,用library命令加载包后,输入data("test",package = "linput")  即可加载包内置数据test到内存

2.现在补齐的向量值会被添加到原始数据集中作为新的一列,提高了科研效率。

【linput3.0.5 R包】百度网盘链接:链接:https://pan.baidu.com/s/1Ik8jn1k8R2y-nKlcg9EDKw
提取码:yln2
也可以从Github下载,Github地址如下:
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/linput3.0.6")
  library(linput)
  help("linput")
}else if(is.element('linput', installed.packages()[,1]) == TRUE){
  library(linput)
  help("linput")
}

10
youngyaoguai 学生认证  发表于 2022-5-5 10:13:25
后续更新还希望大家提出更好的意见

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-29 22:18