【问题标题】:Purrr: Which nested dataframe encountered the error?Purrr:哪个嵌套数据框遇到了错误?
【发布时间】:2018-06-01 22:29:53
【问题描述】:

这是一个嵌套数据。

df1 <- tibble::tribble(
   ~A,        ~B,  ~group,
   4L,         1L,  "A",
   7L,         4L,  "A",
  NA_integer_, 1L,  "B",
  NA_integer_, 10L, "B")

df2 <- df1 %>% group_by(group) %>% nest()

我需要使用 purrr:map 运行 lm。

map(df2$data, ~lm(A~B, data=.x))

找出哪些嵌套数据遇到错误的最佳方法是什么,即我如何知道 B 组有问题。

您能否提出一个可能或安全地使用 purrr's 的解决方案?

【问题讨论】:

    标签: r tidyverse purrr


    【解决方案1】:

    您可以在此处使用possibly()。在我的示例中,如果模型有错误,我让它返回 NA

    首先我创建posslm,使用otherwise告诉它在使用lm后如果出现错误返回什么。

    posslm = possibly(lm, otherwise = NA)
    

    然后您可以在mutate 中使用map 创建一个新的模型列。完成后,将 filterNA 行用于新变量,然后取出 group

    mutate(df2, mod = map(data, ~posslm(A~B, data=.x))) %>%
        filter( is.na(mod) ) %>%
        pull(group)
    
    [1] "B"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 2020-01-22
      • 1970-01-01
      • 2018-10-11
      • 2021-10-08
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多