【发布时间】:2021-01-17 03:41:02
【问题描述】:
我想通过ordinary least squares (OLS) 手动运行fixed effects 回归来降低我的数据的时间。 “时间贬值”是指计算每单位(例如人)的组均值并减去这个。我认为这段代码可能会完成这项工作,但它会为所有行产生一个大平均值:
set.seed(5)
paneldata = data.frame(id=c(1,1,1,1,1,1,1,2,2,2,2,2,2,2),
year=seq(from=2003, to=2009, by=1),
x = runif(14, min = 0, max = 25),
y = runif(14, min = 0, max = 25),)
paneldata %>%
group_by(id) %>%
mutate(MeanValue = mean(x),
tdm_x = x - MeanValue)
# A tibble: 14 x 6
# Groups: id [2]
id year x y MeanValue tdm_x
<dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1 2003 5.01 6.56 12.4 -7.38
2 1 2004 17.1 5.05 12.4 4.74
3 1 2005 22.9 9.69 12.4 10.5
4 1 2006 7.11 22.2 12.4 -5.28
5 1 2007 2.62 13.9 12.4 -9.77
6 1 2008 17.5 21.1 12.4 5.14
7 1 2009 13.2 22.3 12.4 0.812
8 2 2003 20.2 18.0 12.4 7.81
9 2 2004 23.9 5.28 12.4 11.5
10 2 2005 2.76 5.64 12.4 -9.63
11 2 2006 6.83 3.50 12.4 -5.55
12 2 2007 12.3 12.0 12.4 -0.124
13 2 2008 7.96 10.9 12.4 -4.43
14 2 2009 14.0 24.1 12.4 1.59
如何修改我的代码以使时间贬低运行?我也在寻找一种方法来自动处理几个变量(不要一遍又一遍地重复mutate)。谢谢
【问题讨论】:
-
您发布的代码按预期工作,并没有给出您显示的输出。您可以尝试重新启动您的 R 会话并再次运行上述代码吗?
-
这解决了我的问题 o.O 以前从未遇到过与 R/dplyr 类似的问题。没关系。如何扩展对变量列表的这种贬低?
标签: r dplyr regression mean