在tidyr中,函数“ gather”用于从宽到长映射数据帧的条件是什么?

tumultous_rooster

我试图找出论据gathertidyr包。

我看了看文档,语法如下:

gather(data, key, value, ..., na.rm = FALSE, convert = FALSE)

帮助文件中有一个示例

stocks <- data.frame(
  time = as.Date('2009-01-01') + 0:9,
  X = rnorm(10, 0, 1),
  Y = rnorm(10, 0, 2),
  Z = rnorm(10, 0, 4)
)

gather(stocks, stock, price, -time)

我对最后一行感到好奇:
gather(stocks, stock, price, -time)

在这里,stocks显然是我们要修改的数据,这很好。

因此,我可以读到它们,stock并且price是键值对的参数-但是此函数如何决定如何选择列以创建此键值对?原始数据框如下所示:

time        X            Y          Z
2009-01-01  1.10177950  -1.1926213  -7.4149618
2009-01-02  0.75578151  -4.3705737  -0.3117843
2009-01-03  -0.23823356 -1.3497319  3.8742654
2009-01-04  0.98744470  -4.2381224  0.7397038
2009-01-05  0.74139013  -2.5303960  -5.5197743

我没有看到任何迹象表明我们应该使用的任意组合XYZ当我使用此功能时,我觉得自己只是在为长格式的数据框中的列选择名称,然后祈祷它gather神奇地起作用。想到这一点,我在使用时也会有同样的感觉melt

是否gather查看列的类型?如何从宽到长映射?

编辑下面有个不错的答案,下面有个精彩的讨论,对于任何想了解更多有关tidyr软件包的原理和用法的信息的人,当然都应该读懂本文,尽管该插图并未解释语法。

A5C1D2H2I1M1N2O1R2T1

在“ tidyr”中,gather在自变量中指定度量变量...这在概念上与稍有不同melt,在该示例中,许多示例(SO上甚至有很多答案)都显示了id.vars参数的使用(假设未指定为ID的任何内容都是度量)。

如您所显示的示例,...参数还可以采用-列名。这基本上是说“收集除此列以外的所有列”。的另一种速记方法gather包括使用冒号指定列的范围,例如gather(stocks, stock, price, X:Z)

你可以比较gathermelt通过查看该函数的代码。以下是前几行:

> tidyr:::gather_.data.frame
function (data, key_col, value_col, gather_cols, na.rm = FALSE, 
    convert = FALSE) 
{
    data2 <- reshape2::melt(data, measure.vars = gather_cols, 
        variable.name = key_col, value.name = value_col, na.rm = na.rm)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

tidyr:从宽到长的列名

来自分类Dev

从宽到长收集数据帧,并使用R中的tidyverse生成新列

来自分类Dev

重塑R中的数据帧:从宽到长,但“可变”列的长度不相等

来自分类Dev

在R中从宽到长

来自分类Dev

使用 tidyr/dplyr 函数汇总数据

来自分类Dev

重塑数据帧(从宽到长)

来自分类Dev

在熊猫中重塑从宽到长的形状

来自分类Dev

在R中从宽到长使用重塑

来自分类Dev

在折叠 R 中相同 ID 的变量值的同时,从宽数据到长数据进行整形

来自分类Dev

将列名中具有多个键的数据框从宽到长重塑

来自分类Dev

使用Tidyr在R中彻底重组数据帧

来自分类Dev

rlang:在 tidyr unite 函数中引用 var

来自分类Dev

从宽到长转置熊猫数据帧

来自分类Dev

R:覆盖从宽格式到长格式的数据帧

来自分类Dev

Tidyr`complete()`为什么不在R中完成?

来自分类Dev

将条件函数应用于数据帧

来自分类Dev

为什么我会使用tidyr的传播函数来获得带有NA的“重复”行?

来自分类Dev

R中的数据帧从宽格式重组为两列

来自分类Dev

将函数应用于R中的数据帧列表

来自分类Dev

R tidyr传播不适用于数据帧

来自分类Dev

XSLT 3.0中映射函数的名称空间是什么?

来自分类Dev

将函数的输出存储到数据帧的新列中

来自分类Dev

进行以下从宽到长格式的数据帧转换的好方法?

来自分类Dev

根据上述逻辑,将数据帧从宽域减少到长域的有效方法

来自分类Dev

在 Spark 数据帧 udf 中,像 struct(col1,col2) 这样的函数参数的类型是什么?

来自分类Dev

熊猫从宽到长的数据转换

来自分类Dev

从宽到长的数据转换多列

来自分类Dev

熊猫从宽到长的数据转换

来自分类Dev

从宽到长重塑调查数据集

Related 相关文章

热门标签

归档