如何在 R 中创建重复模式并向该重复添加顺序模式的数据框?

  • 本文关键字:模式 顺序 添加 数据 创建 r repeat
  • 更新时间 :
  • 英文 :


>假设我有一个国家的向量和一个年份的向量

countries = c("Afganistan", "Armenia", ... "Zimbabwe")
year = 2004:2019

我想创建一个列表,重复所有国家/地区,并为每次重复添加一年,如下所示:

Afghanistan    2004
Armenia        2004
...
Zimbabwe       2004
Afganistan     2005
Armenia        2005
...
Zimbabwe       2019

这种做到了

x = data.frame(
countries   = c("a", "b", "c", "d"),
years = c(1, 2, 3, 4),
years2 = c(1, 2, 3, 4)
)
melt(data = x, id.vars = "countries", measure.vars = c("years", "years2"))

但是必须有一种更简单的方法,所以我不必重复年份变量。

这是你想要的吗?

expand.grid(countries = c("a", "b", "c", "d"),
years = c(1, 2, 3, 4))
#>    countries years
#> 1          a     1
#> 2          b     1
#> 3          c     1
#> 4          d     1
#> 5          a     2
#> 6          b     2
#> 7          c     2
#> 8          d     2
#> 9          a     3
#> 10         b     3
#> 11         c     3
#> 12         d     3
#> 13         a     4
#> 14         b     4
#> 15         c     4
#> 16         d     4

创建于 2019-12-16 由 reprex 软件包 (v0.2.1(

最新更新