[英]Result type for group 1`` Error when using factor in dplyr mutate
以下代码向我抛出了一个错误:
dfTest <- structure(list(Year = c(2018, 2018, 2018, 2018, 2018, 2018, 2018,
2018, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019,
2019, 2019, 2019, 2019, 2020, 2020, 2020, 2020, 2020, 2020, 2020,
2020, 2020, 2020, 2020, 2021, 2021, 2021, 2021, 2021, 2021, 2021,
2021, 2021, 2021, 2021)),
class = c("grouped_df", "tbl_df", "tbl", "data.frame"),
row.names = c(NA, -44L),
groups = structure(list(
Year = c(2018, 2019, 2020, 2021),
.rows = structure(list( 1:11, 12:22, 23:33, 34:44),
ptype = integer(0), class = c("vctrs_list_of", "vctrs_vctr", "list"))),
class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -4L), .drop = TRUE))
dfTest %>% mutate(Year = factor(Year, ordered = T))
错误是
Error in `mutate()`:
! Problem while computing `Year = factor(Year, ordered = T)`.
Caused by error:
! `Year` must return compatible vectors across groups.
ℹ Result type for group 1 (Year = 2018): <ordered<a0764>>.
ℹ Result type for group 2 (Year = 2019): <ordered<4e60d>>.
Run `rlang::last_error()` to see where the error occurred.
我没有立即在网上找到答案,所以我认为这可能会引起社区的兴趣。
这里的问题似乎是尝试对grouped
变量使用factor
函数会导致错误。 只需添加一个ungroup
步骤即可解决问题:
dfTest <- structure(list(Year = c(2018, 2018, 2018, 2018, 2018, 2018, 2018,
2018, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019,
2019, 2019, 2019, 2019, 2020, 2020, 2020, 2020, 2020, 2020, 2020,
2020, 2020, 2020, 2020, 2021, 2021, 2021, 2021, 2021, 2021, 2021,
2021, 2021, 2021, 2021)),
class = c("grouped_df", "tbl_df", "tbl", "data.frame"),
row.names = c(NA, -44L),
groups = structure(list(
Year = c(2018, 2019, 2020, 2021),
.rows = structure(list( 1:11, 12:22, 23:33, 34:44),
ptype = integer(0), class = c("vctrs_list_of", "vctrs_vctr", "list"))),
class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -4L), .drop = TRUE))
dfTest %>%
ungroup %>%
mutate(Year = factor(Year, ordered = T))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.