【问题标题】:R dplyr: Panel Data - Relative valuesR dplyr:面板数据 - 相对值
【发布时间】:2016-09-15 04:46:02
【问题描述】:

我以如下数据集为例:

library(plm)
data(EmplUK)

head(EmplUK)

   firm year sector   emp  wage capital output
1    1 1977      7 5.041 13.15  0.5894  95.71
2    1 1978      7 5.600 12.30  0.6318  97.36
3    1 1979      7 5.015 12.84  0.6771  99.61
4    1 1980      7 4.715 13.80  0.6171 100.55
5    1 1981      7 4.093 14.29  0.5076  99.56
6    1 1982      7 3.166 14.87  0.4229  98.62

我想添加一行 rel_emp,对于每个观察结果,该行的就业相对于公司 1 在相应年份的就业。
例如。 1983 年公司 2 的 rel_emp 的值应为 1983 年公司 2 的 emp 除以 1983 年公司 1 的 emp

一个可能的解决方案:
1.提取公司1的就业情况:

library(dplyr)
emp_firm1 = EmplUK %>% filter(firm==1) %>% dplyr::select(year, emp)
  1. emp_firm1按年份添加到EmplUK(我现在不知道该怎么做)

  2. emp 除以emp_firm1

    EmplUK=mutate(EmplUK, rel_emp=emp/emp_firm1)

非常感谢。

【问题讨论】:

  • 对于第 2 步和第 3 步,请尝试合并。 %>% left_join(EmplUK, by="year") %>% mutate(rel_emp = emp.y/emp.x)

标签: r dplyr panel-data


【解决方案1】:

我们先合并,再分割,再排列得到原来的布局:

library(dplyr)
EmplUK %>% filter(firm == 1) %>%
  dplyr::select(year, emp) %>%
  left_join(EmplUK, by="year") %>%
  mutate(rel_emp = emp.y/emp.x) %>%
  arrange(firm, year)
#     year emp.x firm sector   emp.y    wage capital   output     rel_emp
# 1   1977 5.041    1      7   5.041 13.1516  0.5894  95.7072  1.00000000
# 2   1978 5.600    1      7   5.600 12.3018  0.6318  97.3569  1.00000000
# 3   1979 5.015    1      7   5.015 12.8395  0.6771  99.6083  1.00000000
# 4   1980 4.715    1      7   4.715 13.8039  0.6171 100.5501  1.00000000
# 5   1981 4.093    1      7   4.093 14.2897  0.5076  99.5581  1.00000000
# 6   1982 3.166    1      7   3.166 14.8681  0.4229  98.6151  1.00000000
# 7   1983 2.936    1      7   2.936 13.7784  0.3920 100.0301  1.00000000
# 8   1977 5.041    2      7  71.319 14.7909 16.9363  95.7072 14.14778842
# 9   1978 5.600    2      7  70.643 14.1036 17.2422  97.3569 12.61482130
# 10  1979 5.015    2      7  70.918 14.9534 17.5413  99.6083 14.14117655
# 11  1980 4.715    2      7  72.031 15.4910 17.6574 100.5501 15.27698726
# 12  1981 4.093    2      7  73.689 16.1969 16.7133  99.5581 18.00366597
# 13  1982 3.166    2      7  72.419 16.1314 16.2469  98.6151 22.87397387
# 14  1983 2.936    2      7  68.518 16.3051 17.3696 100.0301 23.33719198
# 15  1977 5.041    3      7  19.156 22.6920  7.0975  95.7072  3.80003975
# 16  1978 5.600    3      7  19.440 20.6938  6.9469  97.3569  3.47142881
# 17  1979 5.015    3      7  19.900 21.2048  6.8565  99.6083  3.96809579
# 18  1980 4.715    3      7  20.240 22.1970  6.6547 100.5501  4.29268274
# 19  1981 4.093    3      7  19.570 24.8714  6.2136  99.5581  4.78133410

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-05
    • 2013-05-15
    • 2021-09-01
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    相关资源
    最近更新 更多