0

我有一个数据框,其中包含 12 个南美国家超过 40 年的 GDP 值。框架的片段如下:

168     Chile  1244.1799 1972
169     Chile  4076.3207 1994
170     Chile  3474.7172 1992
171     Chile  2928.1562 1991
172     Chile  6143.7276 2004
173  Colombia   882.5687 1976
174  Colombia  1094.8795 1977
175  Colombia  5403.4557 2008
176  Colombia  2376.8022 2002
177  Colombia  2047.9784 1993

1)我想按国家订购数据框。前约 40 个值应与阿根廷有关,接下来约 40 个与玻利维亚有关,依此类推。

2)在每个国家/地区分组中,我想按年订购。前 3 行应与阿根廷 2012、阿根廷 2011、阿根廷 2010 等有关。

我可以使用 单独获取每个国家/地区的数据subset(),然后使用order(). 当然,我不必为每个国家/地区都这样做,然后使用rbind()? 我如何一口气做到这一点?

3) 一旦我有了最终产品,我想创建 12 个垂直堆叠的小的独立折线图,每个折线图都与不同的国家有关,它显示了该国家大约 40 年的 GDP 趋势。我如何创建这样的情节?

我确信我自己可以找到关于第三个问题的信息,但是,好吧,我什至不知道这样的图表首先被称为什么......

4

1 回答 1

1

这是一个解决方案ggplot2。假设您的数据位于df

library(ggplot2)
df$year.as.date <- as.Date(paste0(df$year, "-01-01")) # convert year to date
ggplot(df, aes(x=year.as.date, y=gdp)) + 
  geom_line() + facet_grid(country ~ .)

在此处输入图像描述

您实际上不需要按年份和国家/地区进行排序,ggplot会为您处理。这是数据(显然,仅使用 5 个国家和 12 年,但这适用于您的数据)。另外,我将向您展示如何在第三行按两列进行排序:

countries <- c("ARG", "BRA", "CHI", "PER", "URU")
df <- data.frame(country=rep(countries, 12), year=rep(2001:2012, each=5), gdp=runif(60))
df <- df[order(df$country, df$year),]   # <- we sort here
df$gdp <- df$gdp + 1:12 / 2
于 2014-04-15T14:36:48.940 回答