0

图书馆(ggmosaic) 图书馆(tidyverse)

我仍在尝试通过标准评估来了解编程的一些细微差别。对于这个问题,我正在尝试使用来自 ggmosaic 的“快乐”数据集创建一个函数,以创建变量“健康”和“快乐”的基本马赛克图。

下面是我想使用标准评估创建函数的代码。我希望能够从快乐数据集中输入任意两个分类变量,并创建一个基本的马赛克图,如代码中所述。

happy%>%
na.omit()%>%
count(happy,health)%>%
ggplot()+
geom_mosaic(aes(weight=n,x=product(health),fill=health))

但是,我不能完全正确地编写代码。我以前问过类似的问题,但我仍然很难理解何时何地使用 .dots 参数以及如何在标准评估中指定输入。下面是我一直在玩的代码的错误版本之一......

Mosaic<-function(product="health",fill="happy"){
happy%>%na.omit()%>%
count_(c(product,fill))%>%
ggplot()+
geom_mosaic(aes_string(weight="n",x=product(product),fill=fill))
}

任何能让它工作的指针将不胜感激,尤其是关于如何用 SE 正确编码的任何建议。

4

1 回答 1

1

你可以这样做:

Mosaic<-function(var_product="health",fill="happy"){
  happy%>%
    na.omit()%>%
    count_(c(var_product,fill))%>%
    ggplot(aes(weight=n))+
    geom_mosaic(aes_string(x=paste0("product(", var_product, ")"),fill=fill))
}

例子:

Mosaic("sex","degree")

在此处输入图像描述

于 2017-01-28T08:41:16.830 回答