你好。我莎朗马克利斯在IDG通信,这里做一集32多与R:制作自己的GGPLOT2功能 - 无需担心或不使用引号的列名。
像ggplot2和dplyr这样的Tidyverse包有一个非常方便的语法:您不必将列名放在引号中。就像你在这个dplyr过滤器代码中看到的那样。列名mpg没有引号。
如果你想写使用tidyverse功能你自己的R函数的功能一直没有派上用场,不过,。这是因为“常规” R通常需要引用的列名,而tidyverse一般没有。
但一些好消息:现在的问题有一个简单的解决方案,这要归功于rlang包的最新版本。这意味着它现在很容易写你自己的ggplot功能,为您最喜爱的定制图表。
让我告诉你一个例子
我会从Zillow的中位数房屋价值由美国各地的城市街区在这里我装了几个包,并设置我的数据文件名中使用的数据。代码的最后一行使用基础R的download.file函数从Zillow的下载CSV。我不会跑最后一行,因为我已经下载的文件。)
我最后的数据预习步骤:导入CSV到R.我使用的是力拓包,因为我爱力,但你可以用别的东西像read_csv或FREAD。然后,我只是过滤的行所在的城市是波士顿。
好。这段代码的其余部分创建了一些自定义我经常喜欢用一个水平条形图。我命令从最高到最低值,酒吧,黑色勾勒它们,并以蓝色着色他们。我也改变了默认的灰色背景。现在,如果我想要什么,使我自己的函数生成任何数据帧像这样的图表?与输入参数的函数中的数据帧的名称中,x列中,y列,图形标题?
这里尝试创建一个名为mybarplot的函数,它具有我想要的定制。但是,如果我尝试使用不带引号的列名运行它,就像使用ggplot一样,会得到一个错误(运行第11行)。如果我引用列名(运行第13行)—我得到一个图,但不是我想要的。这就是基本R需要引号括起来的列名而ggplot不需要的问题。
老rlang包有这个一个多步骤的答案。一个新的运营商当前的一个解决它叫做整齐评价运营商 - 双花括号。你只要把绕不带引号的列名的函数中,就大功告成了!
你至少需要rlang包的版本0.4.0这个工作。在我录这个视频的时候,它是在CRAN,但你需要给安装过程中的选项时,从源代码编译它。
在这里,我加载rlang,然后只是调整我的barplot功能,所以每次我指的是列名我的函数内部ggplot内的时候,我用双花括号括起来 - “卷毛卷毛”是包创作者如何引用它。其他一切都是一样的。
现在,我可以叫我的功能。而且,就像与tidyverse功能,我不需要把列名在引号。有用!
我仍然可以通过调整我的函数创建的图形,使用ggplot命令。
这里我将barplot函数的结果保存到一个变量中,我将其称为mygraph。它将像任何其他ggplot对象一样显示。
在第4行开始,我定制图形略偏 - 即geom_text()行添加值到每个杆;主题代码设置图表标题的大小。
现在你知道如何保存您最喜爱ggplot图表在自己的自定义功能,以备将来使用!
这是它为这个情节,感谢收看!对于以上R提示,头向做多有R在页面去点InfoWorld的点com削减更多的与R,全部小写除R
您还可以找到做多配合YouTube IDG技术讲座槽R播放列表。
期待您的下一集!