更新:看一段15分钟关于这个套餐的对话:
https://kbod.win/talks/user_2020
https://youtu.be/sXFJ_AZ4jeA
今天我非常荣幸地向大家介绍天赋包.
下面是一个课堂灾难的例子,它激发了这个包:
您正在向类或观众展示分析,然后转到幻灯片,其中显示源代码及其输出。因为要强调源代码的某一行,所以将代码文本复制粘贴到幻灯片中,并在相关部分添加高亮显示。
打开幻灯片后,你会惊恐地发现你修改了源代码,但是你忘记编辑幻灯片了。屏幕上显示的代码文本不再与输出匹配,您的学生感到困惑。
这能引起共鸣吗?你也经历过这个恐怖故事吗?
这种材料的不可复制性,以及手工高亮代码文本的繁琐本质所带来的简单挫败感,让我发展出了天赋。我首先为教育工作者编写了这个软件包,尽管我发现它对会议演讲和研讨会同样有用。
您可以在这里找到基本的包文档和小插图这个网站.不过,今天我想花点时间给你们看几个我最喜欢的天赋的例子,让你们知道它在课堂上或演讲中是如何有用的。
这些例子都使用了baby_names
数据集的https://www.kaggle.com/kaggle/us-baby-names,其中包含了自19世纪以来各州以不同名字出生的婴儿数量。我们的数据将仅限于在加利福尼亚州出生的名字为“凯利”的婴儿。你可以下载这个数据跟着走。
例1:强调代码中的小差异。
flair最默认的功能是快速为代码添加基本的高亮显示。
这个简单的功能有很多用例。我特别喜欢用天赋()
函数显示代码中的小更改如何影响输出。
例如,假设我在教概念几何图形在ggplot
.我希望绘制出加州每年出生的名字为“Kelly”的婴儿数量,并以出生时分配的性别进行着色。
我做了两个不同的情节;一个用列,一个用行。我工作的代码块是这样的:
' ' ' {r geoms, include=FALSE} baby_names %>% ggplot(aes(x = Year, y = Count, fill = Gender)) + geom_col() baby_names %>% ggplot(aes(x = Year, y = Count, color = Gender)) + geom_line()' ' '
与装修
而且天赋
函数,我可以触发这个代码块进行计算,同时为我的代码的选定部分添加高亮显示。
通常,我们会用echo = FALSE
放在第一块下面,这样就看不见了天赋()
的过程。
装修(“几何学”)% > %天赋(“_col”)% > %天赋("fill = ")% > %天赋(“_line”)% > %天赋("color = ")
baby_names % > %
ggplot(aes(x =年份,y =计数,填补=性别))+
几何学_col()
baby_names % > %
ggplot(aes(x =年份,y =计数,颜色=性别))+
几何学_line()
注意:如果您有许多代码片段需要修饰,并且您不想手动指定所有内容,则flair_rx ()
函数允许您输入正则表达式而不是固定的字符串。
例2:将颜色与概念相匹配。
在教学时,我们经常想把概念和代码联系起来,就像这张由天赋创造的美丽幻灯片一样安德鲁Heiss:
给代码的不同部分涂上不同的颜色是很简单的天赋()
.方法,还可以使用管道字符串作为额外的快捷方式天赋
函数为文本部分上色,如果您愿意,甚至可以添加自己的特殊HTML标记。
代码块:
{r, results = "asis", echo = FALSE} "该模型有一个响应变量,两个预测变量和一个交互项。"%>% flair("response variable", color = "deeppink") %>% flair("predictors", color = "cornflowerblue") %>% flair("interaction term", color = "orange") %>% flair_all(before = "", after = "
") %>% cat()' ' '
{r, echo = FALSE} decoration ("lm") %>% flair("Count", color = "deeppink") %>% flair("Gender:Year", color = "orange") %>% flair_rx("Gender |Year ", color = "cornflowerblue")' ' '
结果:
这个模型有一个反应变量,两个预测,以及相互作用项.
Mod <- lm(数~性别+一年+性别:年, data = baby_names)
总结(mod)
## ##调用:## lm(公式=计数~性别+年份+性别:年份,数据= baby_names) ## ##残差:##最小1Q中位数3Q最大## -625.27 -128.36 -13.67 155.13 943.86 ## ##系数:##估计标准误差t值Pr(>|t|) ##(拦截)837.0953 3555.4360 0.235 0.814 ##性别m 2769.6513 4980.9342 0.556 0.579 ##年-0.1064 1.7965 -0.059 0.953 ##性别m:年-1.6660 2.5171 -0.662 0.509 ## ##残差标准误差:在147个自由度上337.2 ##多重r平方:0.3876,调整后的r平方:0.3751 ## f统计:31.02上3和147 DF, p值:1.357e-15
例3:易于练习活动的掩码。
最后但并非最不重要的是,我最喜欢的用法是面具()
隐藏代码段的函数。这个功能最初是由Alison Hill提出的,它很快就成为我在包中最常用的功能!
假设我在教书ggplot
,我想让学生理解图形语法框架。我希望他们能够练习识别剧情的几个关键元素:
- 哪些变量被用于哪些美学元素。
- 使用哪些几何图形来绘制图形。
- 哪一个
theme_ * ()
函数被应用到图中。
因此,我可以创建以下挑战:根据图形输出填充代码空白。
库(ggplot2)
baby_names % > %
ggplot(aes (y =, x =, color =) +
geom_() +
geom_() +
theme_()
在这里我隐藏了天赋块,这样你就可以看到学生做的练习。这是它的样子:
' ' ' {r,回声= FALSE}装修(“阴谋”)% > % flair_rx(“ggplot2 ?”,背景= "粉红色")% > %面具(“计数”)% > %面具("年")% > %面具("性别")% > %面具(“点”)% > %面具(“行”)% > %面具(“光”)' ' '
学习用R编写代码的学生通常很快就会知道怎么做写编码、猜测和检查,直到输出与他们想要的匹配。然而,他们能够做到这一点也很重要事先考虑,并预测每段代码将在输出中产生什么影响。
填空活动是一种很好的练习方式,用天赋来掩饰可以让创建这些活动快速简单!
总结
您可以尝试本博客文章中的代码这个RSt英格兰vs伊朗让球udio云项目.一般来说,flair可以用于大多数R Markdown基于html的输出格式,包括像这样的幻灯片制作器ioslides而且xaringan.不幸的是,目前还不可能编织到pdf或MS Word文件的风格格式-尽管我们希望在未来提供该功能。
如果你对未来的天赋能力有任何想法,可以让你的教学和演讲更容易,请不要犹豫在GitHub上提交一个问题,或向我伸出援手个人。
我们希望flair使代码呈现过程更加简单、可复制和令人愉快。
花式表演快乐!