Использовать оператор трубы в `expss :: uselabels ()`? - PullRequest
2 голосов
/ 21 июня 2020

Я пытаюсь подключиться к expss::uselabels().

Простым воспроизводимым примером того, что я пытаюсь сделать (без трубы), будет помеченная lm() модель:

library(tidyverse)
library(expss)

df <- mtcars

df <-  apply_labels(df,
                  cyl =  "Number of Cylinders",
                  disp = "Displacement")

fit_1 <- df %>% 
  use_labels(lm(formula = mpg ~ disp + cyl))
summary(fit_1)

, что дает помеченные коэффициенты на выходе lm:

# > Coefficients:
#>                       Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)           34.66099    2.54700  13.609 4.02e-14 ***
#> Displacement          -0.02058    0.01026  -2.007   0.0542 .  
#> `Number of Cylinders` -1.58728    0.71184  -2.230   0.0337 *  

Мои вопросы: могу ли я сначала взять модель lm(), а затем перейти к use_labels()? Я пробовал ниже, но я, должно быть, неправильно ссылаюсь на два параметра.

fit_1<- df %>% 
  lm(formula = mpg ~ disp + cyl) %>% 
  use_labels(data = .x, expr = .y)

1 Ответ

1 голос
/ 21 июня 2020

use_labels работает очень просто и понятно. Он просто заменяет в выражении все имена переменных их метками. Переменные ищутся в первом аргументе (data.frame). Как уже сказал @alistaire, все эти действия выполняются перед вычислением предоставленного выражения, например, перед вычислением результата lm(formula = mpg ~ disp + cyl). Итак, ответ на ваш вопрос - «Нет». Вы не можете применить use_labels к уже рассчитанному результату.

...