plyr有一个非常方便的选项,.inform = TRUE,它允许用户知道split-apply-combine进程中的哪些部分失败.
有没有一种方法可以通过dplyr的group_by知道哪一块失败了?
最小示例:以下df中的组1是导致问题的组,但dplyr错误消息未显示该信息.
df <- data.frame(group = c(1, 1, 2, 2, 2))
df %>% group_by(group) %>% mutate(value = c(10, 10, 10))
# Error: incompatible size (3), expecting 2 (the group size) or 1
最佳答案 我不知道dplyr中的方法,所以这可能与你正在寻找的东西有点正交,但这里有一个使用split和purrr ::的可能方法.
library(purrr); library(dplyr)
set_3_tens <- function(df) { df %>% mutate(value = c(10,10,10)) }
df %>%
split(.$group) %>%
map(
possibly(
set_3_tens, otherwise = "Problem in group"))
$`1`
[1] "Problem in group"
$`2`
group value
1 2 10
2 2 10
3 2 10