
R充满了各种功能。 在下面,我将给出其中最有趣的十个,许多人可能都不知道。 当我发现我在我的工作中使用的一些R功能的故事被熟悉的程序员热情地接受后,这篇文章就出现了。 如果您已经知道所有相关信息,那么对您所花的时间表示歉意。 同时,如果您有什么要分享的,请在评论中提供一些有用的建议。
Skillbox建议: Python开发人员 教程 。
我们提醒您: 对于所有“哈勃”读者来说,使用“哈勃”促销代码注册任何Skillbox课程时均可享受10,000卢布的折扣。
开关功能
我真的非常喜欢switch()。 实际上,这是根据另一个变量的值选择值时if语句的方便缩写。 在编写应根据先前选择加载特定数据集的代码时,我发现这特别有用。 例如,如果有一个名为animal的变量,并且您需要根据动物是狗,猫还是兔子来选择一个特定的数据集,请编写以下代码:
数据<-read.csv(
切换(动物,
“ Dog” =“ dogdata.csv”,
“ Cat” =“ catdata.csv”,
“兔子” =“ rabbitdata.csv”)
)此功能在“闪亮”应用程序中很有用,您需要根据一个或多个条目菜单项加载各种数据集或环境文件。
RStudio的键盘快捷键
对于R而言,这种技巧不如RStudio IDE。 但是,热键始终非常方便,可让您节省输入文本的时间。 我的收藏夹是Ctrl + Shift + M(用于%>%运算符)和Alt +(用于<-运算符)。
要查看所有热键,只需在RStudio中按Alt + Shift +K。
Flexdashboard包
当您需要快速启动Shiny控制面板时,没有什么比仪表板包更好的了。 它提供了使用HTML快捷方式的功能,从而使轻松创建边栏,行和列变得容易且没有问题。 还可以使用标题栏,该标题栏允许您将其放置在应用程序的不同页面上,在Github上保留图标,快捷方式,电子邮件地址等等。
该程序包允许您在Rmarkdown框架内工作,以便可以将所有应用程序放在一个Rmd文件中,而不是像使用Shinydashboard那样将它们分发到不同的服务器和UI文件。 每当需要在创建复杂的原型之前创建一个简单的原型控制面板时,我都会使用flexdashboard。 此功能使您可以在一个小时内创建原型。
要求和验证R Shiny中的功能
R Shiny中的开发可能会使您感到困惑,尤其是当您不断收到奇怪的错误消息而使您无法了解正在发生的情况时。 但是随着时间的推移,Shiny不断发展和完善,这里出现了越来越多的功能,可让您了解错误的原因。 因此,req()解决了“无声”错误的问题,通常情况下不清楚是什么问题。 使用它,您可以显示与先前操作关联的用户界面元素。 让我们用一个例子来说明:
输出$ go_button <-Shiny :: renderUI({
#仅在选择了动物输入后才显示按钮
闪亮::要求(输入$动物)
#显示按钮
闪亮的::操作按钮(“转到”,
粘贴(“行为”,输入$动物,“分析!”)
)
})validate()在渲染之前检查所有内容,并允许您显示错误消息-例如,用户上传了错误的文件:
#获取csv输入文件
inFile <-输入$ file1
数据<-inFile $数据路径
#仅当是狗时才渲染表
闪亮:: :: renderTable({
#检查它是狗文件,而不是猫或兔子
闪亮::验证(
需要(“狗名”%的%名称(数据)),
“找不到“狗名”列-是否加载了正确的文件?”
)
资料
})有关所有这些功能的更多信息,请
参见此处 。
在系统环境中为您自己存储凭据
如果您打算在要输入访问数据的位置共享代码,请使用系统环境,以避免将自己的凭据放置在Github或其他服务中。 展示位置示例:
Sys.setenv(
DSN =“数据库名称”,
UID =“用户ID”,
通过=“密码”
)现在您可以使用环境变量登录:
db <-DBI :: dbConnect(
drv = odbc :: odbc(),
dsn = Sys.getenv(“ DSN”),
uid = Sys.getenv(“ UID”),
pwd = Sys.getenv(“ PASS”)
)将它们直接在操作系统中设置为环境变量更加方便(特别是如果您经常使用数据)。 在这种情况下,它们将始终可用,并且您不必在代码中指定它们。
使用Styler进行Tidyverse自动化
样式器包可以帮助清除代码,该代码具有许多功能,可以自动将代码样式转换为tidyverse。 为此所需要做的就是为有问题的脚本运行styler :: style_file()。 该软件包将做很多(但不是全部)以恢复顺序。
文档参数化R降价
因此,您创建了一个出色的R Markdown文档,在其中分析了有关狗的各种事实。 然后您会想到最好做同样的工作,但只对猫要好。 没关系,您只需一个命令即可自动报告猫。 为此,您只需要参数化R markdown文档。
您可以通过在指定文档中为YAML标头设置参数,然后为参数设置值来实现。
标题:“动物分析”
作者:“基思·麦克努尔蒂”
日期:“ 2019年3月21日”
输出:
html_document:
code_folding:“隐藏”
参数:
动物名:
值:狗
选择:
-狗
-猫
-兔子
学习年限:
输入:滑块
最低:2000
最多:2019
步骤:1
回合:1
9月:“
值:[2010、2017]
---现在,您可以将文档代码中的所有变量注册为params $ animal_name和params $ years_of_study。 然后,我们将使用“编织”下拉菜单(或knit_with_parameters()),并有机会选择参数。

显示代码
manifest.js-一个软件包,可让您使用内置的R代码,直观的导航和幻灯片菜单创建出色的HTML演示文稿。 HTML快捷方式使您可以快速创建具有不同样式的嵌套幻灯片结构。 嗯,HTML可以在任何设备上运行,因此可以在每部手机,平板电脑或笔记本电脑上打开演示文稿。 可以通过安装软件包并在YAML标头中调用它来配置信息公开。 这是一个例子:
-标题:“扩大People Analytics Universe的边缘”
作者:“基思·麦克努尔蒂”
输出:
揭示js ::显示js_presentation:
中心:是的
模板:starwars.html
主题:黑色
日期:“伦敦人力资源分析见面会-2019年3月18日”
resource_files:
-darth.png
-deathstar.png
-hanchewy.png
-millenium.png
-r2d2-threepio.png
-starwars.html
-starwars.png
-stormtrooper.png
---演示文稿的源代码在
此处 ,<a
href=foreign rpubs.com/keithmcnulty/hr_meetup_london'>演示文稿本身在此处。

R Shiny中的HTML标签
大多数程序员没有充分利用R Shiny拥有的HTML标签。 但是,这些标签只有110个,可以为HTML函数或媒体播放创建简短的调用。 例如,我最近使用标签$ audio播放“胜利”声音,该声音警告用户任务已完成。
好评套餐
使用此软件包非常简单,但是您需要使用它来向用户表示赞赏。 看起来很奇怪,但他们真的很喜欢。

Skillbox建议: