如何在面板数据r中绘制滞后变量
Posted
技术标签:
【中文标题】如何在面板数据r中绘制滞后变量【英文标题】:How to graph a lagged variable in a panel data r 【发布时间】:2021-10-31 05:44:19 【问题描述】:我得到了一个公司数据集(不平衡面板),如下所示:
id year tfp c_sales
A 2012 1.52 14.56
A 2013 1.82 15.6
A 2014 1.67 16.3
A 2015 1.72 18.36
... ... ... ...
B 2012 1.58 17.56
B 2013 1.83 12.6
B 2014 1.62 19.3
B 2015 1.96 14.36
... ... ... ...
C 2012 1.2 13.4
C 2013 1.6 16.3
... ... ... ...
等等……直到 2019 年。
如何绘制 2014 年的 tfp
与 2015 年的 c_sales
?
我想要一个散点图,横轴显示 2014 年的 tfp
值,纵轴显示 2015 年的 c_sales
值。
由于tfp
是衡量生产力的指标,我希望看到一个散点图,它告诉我,2014 年生产力高的公司在 2015 年的销售额或多或少。
我试图用 ggplot 制作一个情节,但我不知道该怎么做。
(另外,我怎样才能进行这样的回归?使用固定年份的自变量)
【问题讨论】:
可以与dput()
分享您的数据
此链接可能有用:Asking a good question
【参考方案1】:
你可以这样做
(虽然数据会非常有用!)
library(tidyverse)
df=tribble(
~id, ~year, ~tfp, ~c_sales,
"A", 2012, 1.52, 14.56,
"A", 2013, 1.82, 15.6,
"A", 2014, 1.67, 16.3,
"A", 2015, 1.72, 18.36,
"B", 2012, 1.58, 17.56,
"B", 2013, 1.83, 12.6,
"B", 2014, 1.62, 19.3,
"B", 2015, 1.96, 14.36,
"C", 2012, 1.2, 13.4,
"C", 2013, 1.6, 16.3,
"C", 2014, 1.7, 17.3,
"C", 2015, 1.82, 20.33
)
f = function(data, group, xYear, yYear)(
tibble(
xYear = xYear,
yYear = yYear,
tfp = data %>% filter(year==xYear) %>% pull(tfp),
c_sales = data %>% filter(year==yYear) %>% pull(c_sales)
)
)
df = df %>%
group_by(id) %>%
group_modify(f, xYear=2014, yYear=2015)
df
输出
# A tibble: 3 x 5
# Groups: id [3]
id xYear yYear tfp c_sales
<chr> <dbl> <dbl> <dbl> <dbl>
1 A 2014 2015 1.67 18.4
2 B 2014 2015 1.62 14.4
3 C 2014 2015 1.7 20.3
接下来
df %>% ggplot(aes(tfp, c_sales))+
geom_point()
【讨论】:
谢谢!这正是我所需要的。对不起,我不能把信息。 (1) 太多(接近 80k 行),这是一个明智的信息。但这对我有用!谢谢,祝你有美好的一天 很高兴能帮上忙。但是请记住,在 Stack Overflow 上,您可以通过选择批准的解决方案来表示感谢。以上是关于如何在面板数据r中绘制滞后变量的主要内容,如果未能解决你的问题,请参考以下文章
如何网格化面板图,使其在 R 中的 ggplot 中具有分类变量和不同的 x 变量