2017-02-26 47 views
0
library(ggmosaic) 
library(dplyr) 
library(purrr) 
library(tidyr) 
library(broom) 
library(tibble) 

使用下面的代碼,我想功能,同時輸出整潔tibble還有ggplot。我不確定如何使用函數內的「返回」來返回多個事物。返回多個對象的功能 - 一個整潔Chisq.Test Tibble和Ggplot

我想這樣的事情...

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) 
GG<-ggplot(df)+ geom_col(aes_string(x="names",y="p.value")) 
return(df,GG)} 

...還有這...

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) 
GG<-function(var){ggplot(df)+ 
geom_col(aes_string(x="names",y="p.value")) 
return(GG) 
} 
}  

我已經嘗試了一些其他的變化,因此,任何幫助將是讚賞。

+0

在你的第一個示例代碼,您可以返回一個列表以'df'和'GG':'回報(名單(DF = DF ,GG = GG))'。 – echasnovski

回答

1

當你想返回多個項目使用的列表:

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) 

GG<-ggplot(df)+ geom_col(aes_string(x="names",y="p.value")) 

return(list(dfrm = df,plotGG = GG)) }