如何在 R 中绘制面板数据?

How to plot panel data in R?

我有以下 csv 文件:


  id year  item valuesound growtharea
1 16 2005 Wheat   9784.490         NA
2 16 2006 Wheat  10020.720  0.0241437
3 16 2007 Wheat   9232.796 -0.0786298
4 16 2008 Wheat   8567.893 -0.0720154
5 16 2009 Wheat  10292.670  0.2013073
6 16 2010 Wheat   9274.589 -0.0989134

plm之后,面板是这样的:

> library(plm)
> panel <- pdata.frame(data, index = c("id", "year"), drop.index = TRUE)
> head(panel)
         item valuesound growtharea
16-2005 Wheat   9784.490         NA
16-2006 Wheat  10020.720  0.0241437
16-2007 Wheat   9232.796 -0.0786298
16-2008 Wheat   8567.893 -0.0720154
16-2009 Wheat  10292.670  0.2013073
16-2010 Wheat   9274.589 -0.0989134

我在绘制此面板时遇到问题。我想用 ggplot2 创建一个折线图,所以它会在 "year" "valuesound".

的值上显示每个 "id" 的线

我试过 ggplot2

ggplot(panel, mapping = aes(x = year, y = value, group = id)) +
   geom_line()

但我总是有错误,例如"Error in FUN(X[[i]], ...) : object 'year' not found"。 我不知道错误在哪里。我已经更改了 drop.index=FALSE,但我仍然无法为每条线创建一个带有颜色的漂亮图表。 你能帮我用这个面板数据创建一个图表吗?

原始数据集具有单独的 idyear 变量,您需要绘制随时间变化到 valuesound 的变量。无需更改为 pdata.frame,因为这样做会索引 id 和 year 变量。

我想这就是您要找的:

library(ggplot2)

# where object df is your original dataset
ggplot(df, mapping = aes(x = year, y = valuesound)) +
  geom_line(aes(linetype = as.factor(id)))