如何绘制面板数据中的滞后变量 r
How to graph a lagged variable in a panel data 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 年。
如何绘制 2014 年的 tfp
和 2015 年的 c_sales
?
我想要一个散点图,横轴显示 2014 年的 tfp
值,纵轴显示 2015 年的 c_sales
值。
由于 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()
我得到了一个公司数据集(不平衡面板),如下所示:
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 绘制绘图,但我不清楚该怎么做。
(另外,我怎样才能做这样的回归?使用固定年份的自变量)
你可以这样做
(虽然数据真的很有用!)
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()