r - 如何在面板数据r中绘制滞后变量
问题描述
我得到了一个公司数据集(不平衡面板),如下所示:
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 年。
我如何绘制tfp
2014 年与c_sales
2015 年的对比图?
我想要一个散点图,横轴显示tfp
2014 年的值,纵轴显示c_sales
2015 年的值。
由于tfp
是衡量生产力的指标,我希望看到一个散点图,它告诉我 2014 年生产力高的公司在 2015 年的销售额或多或少。
我试图用ggplot制作一个情节,但我不清楚如何去做。
(此外,我怎样才能进行这样的回归?使用固定年份的自变量)
解决方案
你可以这样做
(虽然数据真的很有用!)
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()
推荐阅读
- ruby-on-rails - 如何实现 has_and_belongs_to_many 关联?
- xml - 如何确定 XML 文件的字符编码
- python-3.x - pygame中翻转和更新之间的性能
- asp.net-core - 使用 IdentityServer4 的 SSO 是否应该在每个请求上点击授权端点?
- signalr - Azure Signal R 如何处理应用程序服务器缩放?
- angular - 从角度打字稿数组中选择默认选项值
- java - 在 gradle.properties 文件中使用“android.debug.obsoleteApi=true”时如何访问日志错误详细信息
- c# - 用于更新由多层实体表示的树结构的设计模式或算法
- c# - 是否可以为收藏提供订购保证?
- mysql - 将数据从一个表复制到另一个表并更改数据类型