问题标签 [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.
r - 尝试使用单独将一列拆分为多于 2 列
我是 R 新手,正在练习使用来自 Kaggle 的 Titanic 数据集。我试图将姓氏、名字、称呼和额外信息分开到单独的列中,以便我可以尝试对乘客的年龄进行分类 - 成人或儿童。
以下是来自训练数据集的示例数据:
以下是包含名称的示例:
我可以使用以下代码将姓氏与列的其余部分分开:
但是,当我尝试为名字添加字段时:
我收到此错误:
我是否使用了不正确的语法或一列中的 3 个字段是不可能的?
r - 如何在带有变量的tidyr中使用gather_
我将 tidyr 与闪亮一起使用,因此需要在 tidyr 操作中使用动态值。但是我在使用gather_() 时确实遇到了麻烦,我认为它是为这种情况设计的。下面的最小示例:
经过一些调试后,我意识到错误发生在 melt measure.vars 部分,但我不知道如何让它与 ':' 一起工作......请提供解决方案并解释一下,以便我了解更多信息.
r - 与统一函数 tidyr 求和
我正在阅读tidyr
文档。我正在尝试使用该unite
功能。是否可以使用该unite
函数对指定的列求和?使用文档中的示例。
我试图弄清楚如何得到它,所以 vs_am 不仅仅是组合为字符的值,而是它会添加列的值?例如。对于马自达 RX4,vs_am = 1(因为 0+1 = 1)
r - 比较聚集 (tidyr) 和融化 (reshape2)
我喜欢reshape2包,因为它让生活变得如此轻松。通常,Hadley 会在他以前的包中进行改进,以实现流线型、更快运行的代码。我想我会给tidyr一个旋转,从我读到的内容我认为与reshape2gather
非常相似。但是在阅读了文档之后,我无法完成相同的任务。melt
gather
melt
数据视图
dput
这是数据的视图(帖子末尾的实际数据):
代码
这是melt
时尚的代码,我在gather
. 我怎样才能gather
做同样的事情melt
?
期望的输出
数据
r - R从数据中的字符串中删除引用
我已经从 Wikipedia 中提取了税收数据并正在重新组合它,但我无法从数据中删除引用标签 ( http://en.wikipedia.org/wiki/List_of_countries_by_tax_rates#Countries )。起初,我尝试在 [ 上使用 strsplit 来删除它,但这就是我得到的:
最终,我想删除引用(编号或“需要引用”以及它们周围的括号)。我希望在第二列中有数字,在第一列中有国家名称,这样我就可以保留名称,但是当没有脚注时它会混合列。我也研究过使用cSplit
这种方法,但也没有取得任何成功。有什么建议么?
r - 将 FIX 消息格式(“Tag=Value”)转换为 CSV
我有一个 35=S 的 csv/log 文件(引用消息;“Tag=Value”),我需要将费率提取到适当的 CSV 文件中以进行数据挖掘。这与 FIX 并不严格相关,它更多的是关于如何清理数据集的 R 相关问题。
原始消息如下所示:
我首先需要得到一个看起来像这样的中间数据集,其中相同的标签是对齐的。
这又需要转换为:
我正在使用 awk 开发一个 bash 脚本,但我想知道我是否可以在 R 中做到这一点。目前,我最大的挑战是到达中间表。从中间到决赛桌,我想到了将 R 与 tidyr 包一起使用,特别是功能“分离”。如果有人可以提出更好的逻辑,我将不胜感激!
r - 重塑数据框
假设我有这个带有行名的凌乱数据框
我想把它整理成整齐的形式,使列A
、、B
和C
折叠成一列,并且还有一列用于Gender
. 它可能看起来像这样
这是使用tidyr
.
但是我不得不以一种相当不雅的方式将行名转换为一列。我的问题是 - 有哪些附加功能tidyr
或reshape
会对此有所帮助?或者我gather
是否可以通过不同的方式来实现这一结果?
r - 使用不同长度向量的 tidyr 分离
我想将一列字符串(例如 [1, 58, 10] )分隔成使用与 tidyr 分开的列。我的问题是有时列更短(永远不会更长)。我在同一个数据框中有很多关于这个问题的列。
加载包
数据
在这里,我使用来自真实数据的样本制作了一个数据框。“向量”在 col1 中的长度为 10,在 col2 中的长度为 9 或 10。有一个时间列只是为了表明还有其他列。
我希望它如何
对于所有“向量”长度相等的第一列,我可以使用 separate() 来获得我想要的。
这导致
这不适用于 col2 元素不能分成几列的地方
解决方法
这导致
如果向量较短,则最后一个元素应为 NA,因此这是正确的。
问题
有没有办法使用单独的(或其他更简单的功能)而不是解决方法?有没有办法同时将其应用于 col1 和 col2(例如,通过选择以 col 开头的列)?
谢谢!
r - R中数据框中选择strsplit列的总和值
假设我有一个R
包含两列的数据框:value
和my_letters
:
的每个元素my_letters
是 3-6个不重复的字母,以空格分隔。
我可以计算每个字母出现的频率:
但是如果我想要一个加权和value
怎么办?
所以,a
出现了三次:在第 2 行的值为 3,第 5 行的值为 4,第 9 行的值为 10。所以a
我想看到 3 + 4 + 10 = 17。(注意value
可能会重复)
有没有很好的plyr
//方法来做到这一点dplyr
?tidyr
(甚至apply
......)
谢谢!!
生成此数据框的代码(我确信有一种更简洁的方法):
html - 使用 Reshape2 清理 HTML 表格
R的新用户。甚至想不出怎么问这个问题。我为 HTML 表格抓取了一个网页。一般来说,一切都很顺利,除了一张桌子。不是有 7 个单独的表,而是将所有内容折叠到 1 个表中,第一个表的列名和值是两个单独的列,所有其他表都是行。结果是一个类似这样的表格:
显然,我需要将第一列中的行(和列名)作为它们自己的列,将第二列中的项目作为它们的值,最好在列名中使用下划线。我试过了:
但收到一条错误消息。然后我想添加另一列,例如:
然后我尝试了
这将第一列中的值作为它们自己的列,但产生了两行(而不是 1 行),带有 NA。我确定这真的很基本,但我无法弄清楚。
编辑时:我认为这给了我我想要的东西,但我远离我的电脑,所以我无法确认:
我需要添加 n
或获得 NA,但我不喜欢它。