如何在 R 中制作重复模式的数据框并向该重复添加顺序模式?
How can I make a data frame in R that repeats a pattern and adds a sequential pattern to that 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"))
但必须有更简单的方法,这样我就不必重复 years 变量。
这是你想要的吗?
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
假设我有一个国家向量和一个年份向量
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 变量。
这是你想要的吗?
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