如何使用Tidyr的新枢轴功能重塑数据

infoworld.|2019年4月5日

请参见Tidyr的新型Pivot_longer和Pivot_Wider函数的示例。

版权所有©2019.足球竞彩网下载

相似的
你好。我在IDG Communications的Sharon Machlis,这里用R第24章:用TidyR的新枢轴功能重塑数据。
我在第12集中覆盖了Tidyr,但有些变化即将到来。而不是旧的聚集()和传播()函数,您将被鼓励使用更直观的pivot_longer()和pivot_wider()函数。幸运的是,Tidyr作家哈德利威克姆在Twitter上表示,收集()和传播()不会被弃用。因此,您使用它们的旧代码将来仍然可以在未来工作。但收集()和传播()不会被维护,并且他会尝试将用户移到枢轴选项。
首先是对“宽”和“长”的简要评论。
这是一个广泛的数据集的示例。它在单行中具有多个数据点,以及一些重要信息 - 时间段 - 列名,而不是数据帧本身。
这里是每行一个测量的长,整洁的数据数据集可能看起来像:
如何从第一个宽的数据设置到长一个数据?
而不是收集(),新的方式将是pivot_longer()。新功能目前在Github上的Tidyr开发版中提供,在TidyVerse / Tidyr存储库中。您可以使用像遥控器或Pacman等软件包安装它。在这里我使用remotes :: install_github。
我不会运行安装,因为它已经在我的系统上,但我将加载包裹。
接下来,我将通过里约进口电子表格的广泛数据。
pivot_longer()使用这种格式
它有4个参数:数据帧;COLS,这是您想要“枢转”成为一列的列;names_to,您想要的新类别列的名称;和value_to,您想要的名称为新值列。
真正方便的是,cols参数可以使用与dplyr的选择语句相同类型的列选择语法。您可以在参数中命名每一列,但这不是必须的。
在这里,我使用通常的列名矢量(但没有引号)。
如果我没有为类别和值列指定名称,则它们将默认为“名称”和“值”
但是我也可以使用类似的dlopl-like选择“所有列以q”,或starts_with()使用类似的“所有列”
下面是相同的代码,只是指定了新列的名称
要将长数据变为更可读的宽数据,请使用此格式使用pivot_wider()函数
第一个参数是您的数据帧。ID_COL是您不想枢转的列。默认为您未在其他两个参数中指定的所有内容。name_from是您想要枢转的列,因此每个值都是新列;value_from是值应该来自的列。
请小心:您需要明确说明第二个参数是names_from,第三个参数是值_from,而不是预期的id_cols 2nd参数的一部分。
这就是它的全部。谢谢你的观点!对于更多R提示,HTTPS Go DOT InfoWorld Dot Com斜杠与R页面的DO MORE MORE与R,所有小写除了R.您也可以在IDG技术谈话YouTube频道上找到与R播放列表的更多。希望下次见到你!
受欢迎的
IDG.tv精选视频