Экспорт карты%>% уборщик::tabyl() в latex

#r #latex #purrr #janitor

#r #Латекс #мурррр #дворник

Вопрос:

Один из моих любимых способов получения сводок-использовать janitor::tabyl() , и использование карты помогает мне получить каждую переменную (или все нечисловые, как в следующем примере). Когда я выполняю одну переменную за раз (например, я могу затем перейти в . df%gt;% tabyl(Variable) gt::gt %gt;%gtsave("name.tex") Но когда я делаю свой табил через карту, я не могу. Есть какие-либо предложения по дальнейшим преобразованиям, чтобы сделать его совместимым с gt пакетом?

 library(gt) library(janitor) library(datasets) gss_cat%gt;% select(!where(is.numeric)) %gt;%   map(~(tabyl(.) %gt;% adorn_pct_formatting()))  

Ответ №1:

Рассмотрите возможность использования imap/iwalk , из которого мы можем извлечь имя столбца ( .y )

 library(purrr) library(stringr) gss_cat%gt;%   # // select non-numeric columns  select(!where(is.numeric)) %gt;%   # // loop over the columns   imap(~ {  # // assign the column name to nm1  nm1 lt;- .y  # // get the tabyl  tabyl(.) %gt;%  # // rename the first column to the column name  rename_with(~ nm1, 1) %gt;%  # // get the percentage  adorn_pct_formatting() %gt;%   # // convert to gt  gt() %gt;%  # // save by creating the .tex file name from nm1  gtsave(str_c(nm1, ".tex"))   })  

Воспроизводимый пример с

 mtcars %gt;%   select(cyl, hp) %gt;%   imap(~ {nm1 lt;- .y  tabyl(.) %gt;%  rename_with(~ nm1, 1) %gt;%   adorn_pct_formatting() %gt;%  gt() %gt;%   gtsave(file.path(getwd(), 'test', str_c(nm1, ".tex")))   })  

-выход

введите описание изображения здесь

Ответ №2:

После устранения неполадок в ответе @akrun, потому что я получал некоторые ошибки:

 gss_cat %gt;%   select(!where(is.numeric)) %gt;%   imap(~ {variable lt;- .y  tabyl(.) %gt;%   rename_with(~ variable, 1) %gt;%   adorn_pct_formatting(.) %gt;%  gt(.) %gt;%   gtsave(str_c(variable, ".tex"))  })  

путь к файлу не нужен, если вы setwd() когда-то делали это раньше, и если у вас есть, то повторное его использование с их предложением приведет к ошибке.

При сохранении в word замените обе gt функции на save_as_docx(path = str_c(variable, ".docx"))