生成带有参数的数据框

时间:2019-05-12 12:09:46

标签: r

我有一个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)

2 个答案:

答案 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