2017-02-23 7 views
2
library(ggmosaic) 
library(purrr) 
library(dplyr) 
library(tibble) 
library(tidyr) 
library(broom) 

Этот вопрос является продолжением предыдущего ответа, предоставленного Джейком Кауппом (ссылка ниже).Функция для Tidying Chisq.Test Выход со стандартной оценкой

Function for Tidy chisq.test Output for Visualizing or Filtering P-Values

Я хотел бы, чтобы включить этот код в функцию, используя стандартную оценку, так что я могу создать аккуратные результаты chisq.test через различные переменные. В приведенном ниже коде используется «happy $ happy» в строке карты для поиска ассоциаций между «счастливой» переменной и другими категориальными переменными. Функция позволит мне изменить «счастливую» на другую переменную, например, «здоровье» или «супружескую».

Я хотел бы включить последнюю строку «unsest» внутри функции так, чтобы она вернула результаты tidy chisq.test.

df <- happy %>% 
select(-id,-year,-age,-wtssall) %>% 
map(~chisq.test(.x,happy$happy))%>% 
tibble(names=names(.),data=.) %>% 
mutate(stats=map(data,tidy)) 

unnest(df,stats) 
+0

Я пытался что-то вроде - Fun <-функции (Var)%>% выберите (-id, -year, -age, -wtssall)%>% map (~ chisq.test (.x, Var)%>% tibble (names = names (.), data =.)%>% mutate (stats = map (data , tidy)). Я по-прежнему новичок в стандартной оценке и не уверен, как подойти к функциям purrr :: map с SE, а также к «счастливой счастливой» части? Я играл с вариантами примера в этом комментарии, но я не знаю, как работать. Я знаю, что глаголы dplyr имеют версии SE, но не уверены в карте или тибете? – Mike

+0

Когда я использовал SE раньше с tidyr и dplyr, я использовал SE-глаголы, например, сбор становится gather_, count становится count_ и т. Д., А также используемые цитаты для динамических переменных. Но для этого вопроса я не совсем уверен в карте и тибете, как SE, или где или что процитировать? – Mike

+0

Для первого комментария я хотел написать это ... Я забыл {} Fun <-функция (Var) {happy%>% select (-id, -year, -age, -wtssall)%>% map (~ chisq.test (.x, Var)%>% tibble (names = names (.), data =.)%>% mutate (stats = map (data, tidy))}. – Mike

ответ

1

Вы можете просто заменить happy$happy с happy[,"happy"], который позволит вам сделать:

chifun <- function(var) { 
     df <- happy %>% select(-id,-year,-age,-wtssall)%>% 
       map(~chisq.test(.x,happy[,var]))%>% 
       tibble(names=names(.),data=.)%>% 
       mutate(stats=map(data,tidy)) %>% unnest(stats) 
     return(df) 
} 

chifun("happy") 
+0

Спасибо, кажется, щедрость ваша. Я так привык использовать «$», что забыл о «[]». У меня вопрос, почему я не должен использовать любая стандартная оценка в этой функции? В предыдущих функциях мне приходилось использовать SE-версии глаголов, таких как «gather_» или «count_», а также цитаты и т. д. Почему в этом примере ничего не нужно? – Mike

+0

Это связано с тем, что вы не передаете ни одного имени столбца в виде строк для любой из функций tidyverse. – mtoto

+0

Кроме того, я заметил, что вы использовали «df <-» и «return (df)», но этот код работает без использования этих частей также есть. зачем их включать? – Mike

Смежные вопросы