有谁知道是否tidyr::complete()支持分组通过group_by()?
确切地说:我有一些看起来像这样的数据框
df <- data.frame(
"ID" = rep(1:2, each = 2),
"Col1" = c("A", NA, "AA", NA),
"Col2" = c("B", "C", "BB", "CC"))
Run Code Online (Sandbox Code Playgroud)
现在我想使用complete()和group_by()计算每组的所有可能组合!
df %>%
group_by(ID) %>%
complete(Col1, Col2)
Error in .Call("dplyr_left_join_impl", PACKAGE = "dplyr", x, y, by_x, :
negative length vectors are not allowed
Run Code Online (Sandbox Code Playgroud)
这会导致错误.但是,使用complete()没有分组工作,但这不是我想要的.
df %>%
complete(Col1, Col2)
Run Code Online (Sandbox Code Playgroud)
问题:
complete()不合作group_by?你可以使用complete和group_by,但你必须使用一个do声明:
df %>%
group_by(ID) %>%
do(complete(., Col1, Col2, fill = list(ID = .$ID)))
Run Code Online (Sandbox Code Playgroud)