问题标签 [tidyr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2625 浏览

r - 尝试使用单独将一列拆分为多于 2 列

我是 R 新手,正在练习使用来自 Kaggle 的 Titanic 数据集。我试图将姓氏、名字、称呼和额外信息分开到单独的列中,以便我可以尝试对乘客的年龄进行分类 - 成人或儿童。

以下是来自训练数据集的示例数据:

以下是包含名称的示例:

我可以使用以下代码将姓氏与列的其余部分分开:

但是,当我尝试为名字添加字段时:

我收到此错误:

我是否使用了不正确的语法或一列中的 3 个字段是不可能的?

0 投票
1 回答
2381 浏览

r - 如何在带有变量的tidyr中使用gather_

我将 tidyr 与闪亮一起使用,因此需要在 tidyr 操作中使用动态值。但是我在使用gather_() 时确实遇到了麻烦,我认为它是为这种情况设计的。下面的最小示例:

经过一些调试后,我意识到错误发生在 melt measure.vars 部分,但我不知道如何让它与 ':' 一起工作......请提供解决方案并解释一下,以便我了解更多信息.

0 投票
1 回答
1722 浏览

r - 与统一函数 tidyr 求和

我正在阅读tidyr文档。我正在尝试使用该unite功能。是否可以使用该unite函数对指定的列求和?使用文档中的示例。

我试图弄清楚如何得到它,所以 vs_am 不仅仅是组合为字符的值,而是它会添加列的值?例如。对于马自达 RX4,vs_am = 1(因为 0+1 = 1)

0 投票
3 回答
26449 浏览

r - 比较聚集 (tidyr) 和融化 (reshape2)

我喜欢reshape2包,因为它让生活变得如此轻松。通常,Hadley 会在他以前的包中进行改进,以实现流线型、更快运行的代码。我想我会给tidyr一个旋转,从我读到的内容我认为与reshape2gather非常相似。但是在阅读了文档之后,我无法完成相同的任务。meltgathermelt

数据视图

dput这是数据的视图(帖子末尾的实际数据):

代码

这是melt时尚的代码,我在gather. 我怎样才能gather做同样的事情melt

期望的输出

数据

0 投票
1 回答
228 浏览

r - R从数据中的字符串中删除引用

我已经从 Wikipedia 中提取了税收数据并正在重新组合它,但我无法从数据中删除引用标签 ( http://en.wikipedia.org/wiki/List_of_countries_by_tax_rates#Countries )。起初,我尝试在 [ 上使用 strsplit 来删除它,但这就是我得到的:

最终,我想删除引用(编号或“需要引用”以及它们周围的括号)。我希望在第二列中有数字,在第一列中有国家名称,这样我就可以保留名称,但是当没有脚注时它会混合列。我也研究过使用cSplit这种方法,但也没有取得任何成功。有什么建议么?

0 投票
2 回答
1756 浏览

r - 将 FIX 消息格式(“Tag=Value”)转换为 CSV

我有一个 35=S 的 csv/log 文件(引用消息;“Tag=Value”),我需要将费率提取到适当的 CSV 文件中以进行数据挖掘。这与 FIX 并不严格相关,它更多的是关于如何清理数据集的 R 相关问题。

原始消息如下所示:

我首先需要得到一个看起来像这样的中间数据集,其中相同的标签是对齐的。

这又需要转换为:

我正在使用 awk 开发一个 bash 脚本,但我想知道我是否可以在 R 中做到这一点。目前,我最大的挑战是到达中间表。从中间到决赛桌,我想到了将 R 与 tidyr 包一起使用,特别是功能“分离”。如果有人可以提出更好的逻辑,我将不胜感激!

0 投票
1 回答
629 浏览

r - 重塑数据框

假设我有这个带有行名的凌乱数据框

我想把它整理成整齐的形式,使列A、、BC折叠成一列,并且还有一列用于Gender. 它可能看起来像这样

这是使用tidyr.

但是我不得不以一种相当不雅的方式将行名转换为一列。我的问题是 - 有哪些附加功能tidyrreshape会对此有所帮助?或者我gather是否可以通过不同的方式来实现这一结果?

0 投票
3 回答
2322 浏览

r - 使用不同长度向量的 tidyr 分离

我想将一列字符串(例如 [1, 58, 10] )分隔成使用与 tidyr 分开的列。我的问题是有时列更短(永远不会更长)。我在同一个数据框中有很多关于这个问题的列。

加载包

数据

在这里,我使用来自真实数据的样本制作了一个数据框。“向量”在 col1 中的长度为 10,在 col2 中的长度为 9 或 10。有一个时间列只是为了表明还有其他列。

我希望它如何

对于所有“向量”长度相等的第一列,我可以使用 separate() 来获得我想要的。

这导致

这不适用于 col2 元素不能分成几列的地方

解决方法

这导致

如果向量较短,则最后一个元素应为 NA,因此这是正确的。

问题

有没有办法使用单独的(或其他更简单的功能)而不是解决方法?有没有办法同时将其应用于 col1 和 col2(例如,通过选择以 col 开头的列)?

谢谢!

0 投票
3 回答
422 浏览

r - R中数据框中选择strsplit列的总和值

假设我有一个R包含两列的数据框:valuemy_letters

的每个元素my_letters是 3-6个不重复的字母,以空格分隔。

我可以计算每个字母出现的频率:

但是如果我想要一个加权value怎么办?

所以,a出现了三次:在第 2 行的值为 3,第 5 行的值为 4,第 9 行的值为 10。所以a我想看到 3 + 4 + 10 = 17。(注意value 可能会重复)

有没有很好的plyr//方法来做到这一点dplyrtidyr(甚至apply......)

谢谢!!

生成此数据框的代码(我确信有一种更简洁的方法):

0 投票
1 回答
95 浏览

html - 使用 Reshape2 清理 HTML 表格

R的新用户。甚至想不出怎么问这个问题。我为 HTML 表格抓取了一个网页。一般来说,一切都很顺利,除了一张桌子。不是有 7 个单独的表,而是将所有内容折叠到 1 个表中,第一个表的列名和值是两个单独的列,所有其他表都是行。结果是一个类似这样的表格:

显然,我需要将第一列中的行(和列名)作为它们自己的列,将第二列中的项目作为它们的值,最好在列名中使用下划线。我试过了:

但收到一条错误消息。然后我想添加另一列,例如:

然后我尝试了

这将第一列中的值作为它们自己的列,但产生了两行(而不是 1 行),带有 NA。我确定这真的很基本,但我无法弄清楚。

编辑时:我认为这给了我我想要的东西,但我远离我的电脑,所以我无法确认:

我需要添加 n或获得 NA,但我不喜欢它。