R扫帚包装中的通胀功能无法按预期工作

时间:2017-07-04 17:05:37

标签: r broom

我期待以下代码

library(dplyr)
library(broom)

d <- data.frame(a = 1:3, b = 8:10)

d %>% inflate(x = c("apple", "orange"), y = c("car", "boat"))

给我一​​个12 x 4的数据框,如下所示:

## 1 apple boat 1 8
## 2 apple boat 2 9
## 3 apple boat 3 10
## 4 apple car 1 8
## 5 apple car 2 9
## 6 apple car 3 10
## 7 orange boat 1 8
## 8 orange boat 2 9
## 9 orange boat 3 10
## 10 orange car 1 8
## 11 orange car 2 9
## 12 orange car 3 10

但它给了我这个:

# A tibble: 4 x 2
# Groups:   x, y [4]
       x     y
   <chr> <chr>
1  apple  boat
2  apple   car
3 orange  boat
4 orange   car

似乎忽略了d。发生了什么事?

1 个答案:

答案 0 :(得分:0)

尝试tidyr::crossing

library(tidyr)

d <- data.frame(a = 1:3, 
                b = 8:10)

d %>% crossing(x = c("apple", "orange"), 
               y = c("car", "boat"))
#>    a  b      x    y
#> 1  1  8  apple boat
#> 2  1  8  apple  car
#> 3  1  8 orange boat
#> 4  1  8 orange  car
#> 5  2  9  apple boat
#> 6  2  9  apple  car
#> 7  2  9 orange boat
#> 8  2  9 orange  car
#> 9  3 10  apple boat
#> 10 3 10  apple  car
#> 11 3 10 orange boat
#> 12 3 10 orange  car