Я хотел бы использовать janitor::tabyl
для создания двусторонних таблиц для каждой переменной с учетом данной переменной в данных. Например
library(tidyverse)
library(janitor)
humans <- starwars %>%
filter(species == "Human")
t2 <- humans %>%
tabyl(gender, eye_color)
t2 %>%
adorn_percentages("row") %>%
adorn_pct_formatting(digits = 2) %>%
adorn_ns()
#> gender blue blue-gray brown dark hazel yellow
#> female 33.33% (3) 0.00% (0) 55.56% (5) 0.00% (0) 11.11% (1) 0.00% (0)
#> male 34.62% (9) 3.85% (1) 46.15% (12) 3.85% (1) 3.85% (1) 7.69% (2)
В идеале я хотел бы использовать purrr:map
для перебора всех остальных переменных и выполнения приведенной выше таблицы в отношении gender
. Пока что я создал основную таблицу после этот пост
humans %>%
select_if(is.character) %>%
select(-name, -gender) %>%
imap(.f = ~janitor::tabyl(dat = humans, !!sym(.y), gender))
Но у меня возникают проблемы с применением аналогичной логики к ранее предоставленным вызовам adorn_*
.
Есть ли способ сделать это с помощью purrr
?
1 ответ
Я не думаю, что что-то изменится и в вызове imap
, вы можете просто передать (%>%
) функции аналогичным образом:
library(janitor)
library(dplyr)
humans %>%
select(where(is.character)) %>%
select(-name, -gender) %>%
purrr::imap(.f = ~tabyl(dat = humans, !!sym(.y), gender) %>%
adorn_percentages("row") %>%
adorn_pct_formatting(digits = 2) %>%
adorn_ns())
#$hair_color
# hair_color feminine masculine
# auburn 100.00% (1) 0.00% (0)
# auburn, grey 0.00% (0) 100.00% (1)
# auburn, white 0.00% (0) 100.00% (1)
# black 12.50% (1) 87.50% (7)
# blond 0.00% (0) 100.00% (3)
# brown 42.86% (6) 57.14% (8)
# brown, grey 0.00% (0) 100.00% (1)
# grey 0.00% (0) 100.00% (1)
# none 0.00% (0) 100.00% (3)
# white 50.00% (1) 50.00% (1)
#$skin_color
# skin_color feminine masculine
# dark 0.00% (0) 100.00% (4)
# fair 18.75% (3) 81.25% (13)
# light 54.55% (6) 45.45% (5)
# pale 0.00% (0) 100.00% (1)
# tan 0.00% (0) 100.00% (2)
# white 0.00% (0) 100.00% (1)
#....
Похожие вопросы
Связанные вопросы
Новые вопросы
r
R — это бесплатный язык программирования с открытым исходным кодом и программная среда для статистических вычислений, биоинформатики, визуализации и общих вычислений. Пожалуйста, используйте минимально воспроизводимые примеры, которые другие могут запустить с помощью копирования и вставки. Показать желаемый результат полностью. Используйте dput() для данных и укажите все небазовые пакеты с помощью library(). Не вставляйте изображения для данных или кода, вместо этого используйте блоки кода с отступом. Для вопросов по статистике используйте https://stats.stackexchange.com.