Основной вопрос dplyr ... Респонденты могли выбрать несколько компаний, которые они используют. Например:
library(dplyr)
test <- tibble(
CompanyA = rep(c(0:1),5),
CompanyB = rep(c(1),10),
CompanyC = c(1,1,1,1,0,0,1,1,1,1)
)
test
Если бы это был вопрос с принудительным выбором, то есть респонденты могли бы сделать только один выбор, я бы сделал следующее для базовой сводной таблицы:
test %>%
summarise_all(funs(sum), na.rm = TRUE) %>%
gather(Response, n) %>%
arrange(desc(n)) %>%
mutate("%" = round(100*n/sum(n)))
Обратите внимание, однако, что столбец «%» - это не то, что мне нужно. Вместо этого я ищу долю от общего числа респондентов для каждого отдельного варианта ответа (поскольку они могут выбрать несколько вариантов).
Я пробовал добавить mutate(totalrows = nrow(.)) %>%
перед командой summarise_all
. Это позволило бы мне использовать эту переменную в качестве знаменателя в более поздней команде mutate
. Однако summarise_all
исключает переменную totalrows.
Кроме того, если есть лучший способ сделать это, я открыт для идей.
c(1, 0, 1, 1, 0)
. Если вы возьмете среднее значение, это 0,6, то есть доля респондентов, выбравших этот вариант. - person tblznbits   schedule 10.10.2018sum(n)
наnrow(test)
, так что код будетtest %>% summarise_all(funs(sum), na.rm = TRUE) %>% gather(Response, n) %>% arrange(desc(n)) %>% mutate("%" = round(100*n/nrow(test)))
- person Kerry Jackson   schedule 10.10.2018