>假设我有一个国家的向量和一个年份的向量
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(