在dplyr中是否有相当于plyr的.inform?

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
点赞