#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"))