r - 我需要一个函数来创建一个新变量,比如 Y_(i,t),方法是在面板数据集中贬低 X_(i,t) 变量,其中时间 T = 18 和国家/地区 n = 48
问题描述
我是 R 应用程序的新手。我需要一个函数来创建一个新变量,例如 Y_(i,t),方法是在具有时间 T =18 和国家/地区 n = 48 的面板数据中贬低 X_(i,t) 变量。即 Y_(i,t ) = X_(i,t) - x_bar(i) 其中 x_bar(i) 是特定国家/地区的平均值。从 2001 年到 2018 年的相应国家值 X 中减去每个国家的平均值。
下面的数据框是模仿上述实际数据描述的删节版本。
pdat <- data.frame( year = rep(c(2001,2002,2003,2004,2005),5),
code = rep(c('GHY', 'DRF', 'JYU','HYU','POI'),each=5),
X = c(60,70,400,300,15,20,200,150,61,71,401,301,400,300,61,71,401,67,145,678,123,456,456,875,246))
pdat <- plm::pdata.frame(pdat, index=c("code", "year"))
pdat
解决方案
您已经在使用的包plm
,提供了一个功能来执行您所描述的,一个内部转换(使用,例如,固定效应面板模型估计)。
继续您的示例,您可以简单地执行以下操作:
Within(pdat$X)
推荐阅读
- solr - SOLR 在尝试检索文档时抛出异常
- elixir - 将相同的键数据合并到一个具有唯一键的映射中
- python - 如何通过bs4 python中的类似字符串在页面中查找特定链接
- c++ - 当两个整数的第一个元素都是负数时,如何正确使用 < 和 > 运算符来处理 2 个整数向量?
- python - 使用 freedesktop 门户使用 Python 截屏
- ruby - 十六进制到字符串转换 - Ruby
- html - 如何移动按钮背景?
- python - 熊猫将一列按另一列分组
- c++ - Template specialization and inheritance template class from other template class
- android - 如何以编程方式更改带有牛轧糖及以上版本的小米设备的锁屏壁纸?