Сохранить вложенную переменную при использовании выбора на вложенном столбце - PullRequest
2 голосов
/ 20 июня 2019

Я использую код из этого вопроса (ниже), чтобы сохранить столбцы вложенного столбца в новый список столбцов (каждый столбец является списком в списке).Однако при использовании selected на вложенном тибле вложенная переменная теряется.Что я хотел бы сохранить, он сохраняет переменную группировки с результатами.

например, results %>% unnest(tidied) сохраняет "карбюратор", но 'результаты%>% select (tidied)%>% map (~ bind_rows(.)) 'нет.

Как сохранить вложенную переменную в выбранных столбцах?

library(tidyverse)
library(broom)
data(mtcars)
df <- mtcars

nest.df <- df %>% nest(-carb) 

results <- nest.df %>% 
  mutate(fit = map(data, ~ lm(mpg ~ wt, data=.x)),
         tidied = map(fit, tidy),
         glanced = map(fit, glance),
         augmented = map(fit, augment))

final <- results %>% select(glanced, tidied, augmented ) %>% 
        map(~bind_rows(.))

1 Ответ

1 голос
/ 20 июня 2019

Мы можем сделать mutate_at до шага select (хотя пока не ясно, ожидаемый результат).Здесь mutate_at в цикле по каждому столбцу, но эти столбцы также tibble, поэтому внутри функции (list(~) мы используем map2, чтобы передать столбец и столбец 'carb', а затем создать новый столбецс колонкой list tibble с помощью mutate ing с новой колонкой 'carb'

results %>%
  mutate_at(vars(glanced, tidied, augmented), 
          list(~ map2(.,carb, ~ .x %>% mutate(carb = .y)))) %>% 
  select(glanced, tidied, augmented) %>% 
  map(~ bind_rows(.x))
$glanced
# A tibble: 6 x 12
#  r.squared adj.r.squared  sigma statistic   p.value    df logLik    AIC    BIC deviance df.residual  carb
#      <dbl>         <dbl>  <dbl>     <dbl>     <dbl> <int>  <dbl>  <dbl>  <dbl>    <dbl>       <int> <dbl>
#1   0.696           0.658   2.29  18.3      0.00270      2 -21.4    48.7   49.6    41.9            8     4
#2   0.654           0.585   3.87   9.44     0.0277       2 -18.2    42.4   42.3    74.8            5     1
#3   0.802           0.777   2.59  32.3      0.000462     2 -22.6    51.1   52.1    53.5            8     2
#4   0.00295        -0.994   1.49   0.00296  0.965        2  -3.80   13.6   10.9     2.21           1     3
#5   0               0     NaN     NA       NA            1 Inf    -Inf   -Inf       0              0     6
#6   0               0     NaN     NA       NA            1 Inf    -Inf   -Inf       0              0     8

#$tidied
# A tibble: 10 x 6
#   term        estimate std.error statistic      p.value  carb
#   <chr>          <dbl>     <dbl>     <dbl>        <dbl> <dbl>
# 1 (Intercept)   27.9       2.91     9.56     0.0000118      4
# 2 wt            -3.10      0.724   -4.28     0.00270        4
#...
#...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...