我如何在R中制作一个重复图案并向该重复添加顺序图案的数据帧? [重复]

问题描述 投票:1回答:1

说我有一个国家的向量和年的向量

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"))

但是必须有一种更简单的方法,这样我就不必重复Years变量。

r repeat
1个回答
2
投票

这是您想要的吗?

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

reprex package(v0.2.1)在2019-12-16创建

© www.soinside.com 2019 - 2024. All rights reserved.