在嵌套级别中制作显式隐式缺失值
Making explicit implicit missing values in nested levels
我正在尝试用缺失的级别来完成我的数据框。
当前输出
id foo bar val
1 a x 7
2 a y 9
3 a z 6
4 b x 10
5 b y 4
6 b z 5
7 c y 2
数据
structure(list(id = c("1", "2", "3", "4", "5", "6", "7"), foo = c("a",
"a", "a", "b", "b", "b", "c"), bar = c("x", "y", "z", "x", "y",
"z", "y"), val = c("7", "9", "6", "10", "4", "5", "2")), .Names = c("id",
"foo", "bar", "val"), row.names = c(NA, -7L), class = "data.frame")
我想用 0s
明确 c
和 z
的缺失嵌套级别。我可以使用 expand.grid
找到解决方法,但无法使用 tidyr
获得所需的输出。
期望的输出:
id foo bar val
1 a x 7
2 a y 9
3 a z 6
4 b x 10
5 b y 4
6 b z 5
7 c x 0
8 c y 2
9 c z 0
提前致谢!
鉴于您正在寻找 tidyr
解决方案,您应该查看 tidyr::complete
(这正是您所追求的):
library(tidyverse)
complete(df, foo, bar, fill = list(val = 0)) %>% select(-id)
#> # A tibble: 9 x 3
#> foo bar val
#> <chr> <chr> <chr>
#> 1 a x 7
#> 2 a y 9
#> 3 a z 6
#> 4 b x 10
#> 5 b y 4
#> 6 b z 5
#> 7 c x 0
#> 8 c y 2
#> 9 c z 0
我正在尝试用缺失的级别来完成我的数据框。
当前输出
id foo bar val
1 a x 7
2 a y 9
3 a z 6
4 b x 10
5 b y 4
6 b z 5
7 c y 2
数据
structure(list(id = c("1", "2", "3", "4", "5", "6", "7"), foo = c("a",
"a", "a", "b", "b", "b", "c"), bar = c("x", "y", "z", "x", "y",
"z", "y"), val = c("7", "9", "6", "10", "4", "5", "2")), .Names = c("id",
"foo", "bar", "val"), row.names = c(NA, -7L), class = "data.frame")
我想用 0s
明确 c
和 z
的缺失嵌套级别。我可以使用 expand.grid
找到解决方法,但无法使用 tidyr
获得所需的输出。
期望的输出:
id foo bar val
1 a x 7
2 a y 9
3 a z 6
4 b x 10
5 b y 4
6 b z 5
7 c x 0
8 c y 2
9 c z 0
提前致谢!
鉴于您正在寻找 tidyr
解决方案,您应该查看 tidyr::complete
(这正是您所追求的):
library(tidyverse)
complete(df, foo, bar, fill = list(val = 0)) %>% select(-id)
#> # A tibble: 9 x 3
#> foo bar val
#> <chr> <chr> <chr>
#> 1 a x 7
#> 2 a y 9
#> 3 a z 6
#> 4 b x 10
#> 5 b y 4
#> 6 b z 5
#> 7 c x 0
#> 8 c y 2
#> 9 c z 0