我有一个ID为数字列的数据框
df <- read.table(text="
id nr
1 1
2 1
1 2
3 1
1 3
", header=TRUE)
我想从中创建新的数据框,其中每个id都将与df数据框具有唯一的nr。您可能会注意到,id 3只有nr 1,而没有2和3。所以结果应该是。
result <- read.table(text="
id nr
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
", header=TRUE)
答案 0 :(得分:2)
您可以将expand.grid
用作:
library(dplyr)
result <- expand.grid(id = unique(df$id), nr = unique(df$nr)) %>%
arrange(id)
result
id nr
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
6 2 3
7 3 1
8 3 2
9 3 3
答案 1 :(得分:0)
我们可以做到:
tidyr::expand(df,id,nr)
# A tibble: 9 x 2
id nr
<int> <int>
1 1 1
2 1 2
3 1 3
4 2 1
5 2 2
6 2 3
7 3 1
8 3 2
9 3 3