问题标签 [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 投票
8 回答
20647 浏览

r - 将多组测量列(宽格式)重塑为单列(长格式)

我有一个宽格式的数据框,在不同的日期范围内进行了重复测量。在我的示例中,有三个不同的时期,它们都有对应的值。例如,第一次测量 ( Value1) 是在从DateRange1Start到期间测量的DateRange1End

我希望将数据重塑为长格式,以便对 DateRangeXStart 和 DateRangeXEnd 列进行分组。因此,原表中的 1 行变为新表中的 3 行:

我知道必须有一种方法可以使用reshape2/ melt/ recast/来做到这一点tidyr,但我似乎无法弄清楚如何以这种特定方式将多组度量变量映射到单组值列。

0 投票
3 回答
28718 浏览

r - R重新排列数据框:一些行到列

我什至不确定如何正确命名问题!

假设我有一个数据框 d:

当前数据框:

我正在尝试重新安排事情,使每个 cat 值成为它自己的一列,sample 仍然是一列(或成为行名),并且 count 将是新 cat 列中的值,其中 0样本没有猫的数量。像这样:

所需的数据框布局:

解决这个问题的最佳方法是什么?

这是据我所知:

即循环遍历原始数据帧中的样本,并对每个样本子集进行转置。所以在这种情况下我得到

这就是我卡住的地方。我用merge, bind, apply,... 尝试了很多东西,但我似乎无法找到正确的东西。另外,我不禁想知道上面的循环是否是必要的一步——unstack也许有什么?

不用说,我是 R 的新手......如果有人可以帮助我,将不胜感激!

PS我试图重新排列我的数据框的原因是希望使值的绘制更容易(即我想在表格格式的图中显示实际的df)。

谢谢!

0 投票
4 回答
46531 浏览

r - dplyr 摘要:等效于“.drop=FALSE”以保持输出中长度为零的组

使用summarisewith函数时,默认plyrddply删除空类别。您可以通过添加来更改此行为.drop = FALSEsummarise但是,这在使用with时不起作用dplyr。还有另一种方法可以在结果中保留空类别吗?

这是一个假数据的例子。

不完全是我所希望的。有没有一种dplyr方法可以达到与中相同的.drop=FALSE结果plyr

0 投票
3 回答
92 浏览

r - 分裂时将宽改造成长

我正在寻找重塑:

进入:

我是 R 新手,一直在尝试使用meltdcast功能,但在这个阶段对我来说有很多曲折。帮助将不胜感激!

我的一个dputdf:

0 投票
3 回答
3391 浏览

r - Melt a dataframe by pattern in colnames

I have several dataframes, each with more than 250 variables. A partial dput from the first dataframe:

I want to reshape my dataframe from wide to long in the following way:

However, I do not know exactly which column names start with FD. Moreover this number varies for the several dataframes and I have to do that for variables starting with other letter combinations as well.

Of course I can do this manually, but that takes more time and is prone to errors. A programmatic solution is therefore highly preferable.

Any suggestions how to approach this?


In order to be able to check where the problem arises with @akrun's dplyr solution, a dput of the first 6 rows and all columns:

0 投票
3 回答
33716 浏览

r - 是否可以在类似于 dcast 的 tidyr 中的多个列上使用扩展?

我有以下虚拟数据:

我选择了两种产品-国家组合

我想并排查看每个组合的值。我可以这样做dcast

是否可以spreadtidyr包中做到这一点?

0 投票
3 回答
2742 浏览

regex - R中的条件字符串拆分(使用tidyr)

我有一个这样的数据框:

我想将变量列一分为二;一列表示变量是否为“成本”,另一列表示变量是否为“reed”。我似乎无法为拆分找出正确的正则表达式(例如使用 tidyr)

如果我的数据更好,请说:

那么这对于 tidyr 来说是微不足道的:

和宾果游戏。相反,看起来我需要某种条件语句来拆分“_”(如果存在),否则拆分在模式的开头(“^”)。

我试过了:

但没有运气。我意识到我什至无法成功拆分为空字符串:

我该怎么做?

编辑 请注意,这是一个更大问题的最小示例,其中有许多可能的变量(不仅仅是costand reed_cost),所以我不想对每个变量进行字符串匹配。

我正在寻找一种解决方案,该解决方案可以按_模式拆分任意变量(如果存在),否则将它们拆分为空白字符串和原始标签。

我也意识到我可以只是 grep 的存在,_然后手动构建列。如果不那么优雅,那也没关系;似乎应该有一种方法可以使用可以返回空字符串的条件来拆分字符串...

0 投票
3 回答
679 浏览

r - 条件字符串拆分

我的问题类似于R (using tidyr) 中的条件字符串拆分。但是,我需要拆分超过 2 列。如果数据集列是

如何将它分成四列

我尝试了链接中的解决方案,但无法正确解决。

0 投票
3 回答
4095 浏览

r - 从 tidyr -gather() - r 的输出中删除不完整的案例

我在看起来像这样的数据框中有不整洁的数据。

在这里,您可以在“团队”中看到一些足球队的名称。Name1-3 是变量,在第一列中列出了用于指代这些团队的不同名称。

我的目标是将数据放入 2 列中,其中包含 team-name1、team-name2、team-name3 配对。我只想保留那些在 name1、name2 或 name3 中有数据的配对。

为此,我正在尝试 tidyr-gather()

这给出了以下输出:

我尝试删除不完整的案例(例如第 20,21、23,24 行但不是 22 行),使用:

这不起作用,因为看似空的值观察包含一个字符“” - 我猜这就是gather()返回缺失数据的方式?我尝试转换temp$value为一个因子,但这也不起作用。

我很想听听如何摆脱不完整的案例。

样本数据...

0 投票
2 回答
518 浏览

r - 是否有更优雅的方法可以将参差不齐的数据转换为整洁的数据框

我有一个数据框,其中包含一列参差不齐的数据:“主题”,其中每个主题都是一串字符,相邻主题由分隔符(在本例中为“|”)相互分隔:

数据框如下所示events

我想转换此数据框,以便每一行包含一个主题,并指示在该主题上花费了多少天,假设如果在 D 天内呈现 N 个主题,则每个主题花费了 D/N 天。

我不得不匆忙这样做,并且这样做如下:

这给了我们

我很想知道如何更优雅地实现这一目标。