【问题标题】:tidyr VS dplyr + reshape2 [closed]tidyr VS dplyr + reshape2 [关闭]
【发布时间】:2019-08-08 10:02:56
【问题描述】:

reshape2dplyr 关联使用而不是完全使用tidyr 是否有任何优势或限制?

我并不完全熟悉 reshape2 函数的 tidyr 等价函数,我想了解切换到 tidyr 的原因是什么,因为我在 R 代码中越来越多地看到它。

【问题讨论】:

  • 这是相当基于意见的:tidyr 的 API 是 reshape2 的演变,它更接近于 dplyr 和相关软件包,尤其是在语言计算方面(非标准评估) .此外,tidyr 包比 reshape2((取消)嵌套、分离和合并列、将值拆分为单独的行……)更多。绝对值得学习。

标签: r dplyr tidyr reshape2


【解决方案1】:

Tidyr 遵循tidyverse 约定,例如dplyr

  • 旨在与管道完美配合的函数%>%

  • 非标准评估 (NSE),这意味着您使用不带引号的列名而不是字符串

  • rlangtidy dots 语义,就像其他 tidyverse 包一样,这意味着你可以使用!!!!!,一旦你知道如何使用它们就非常强大。当然,如果你不使用 NSE 的函数,你也可以不用花哨的语法来做同样的事情……但如果你已经使用了dplyr,那么你已经在到处使用 NSE。

如果您已经使用dplyr,如果您还使用tidyr 进行数据整形,您的代码可能看起来更一致。

此外,reshape2 专注于重塑数据 (melt/cast),而 tidyr 则专注于重塑数据 (gather/spread),更像是操作列 (unite/separate/extract)、创建和使用列表列和嵌套数据/帧 (nest/unnest),处理缺失值 (complete/expand/fill)。

我还应该说dplyrtidyr是互补的,所以我会挑战你的框架(tidyr) VS (dplyr + reshape2)。无论您是使用tidyr 还是reshape2dplyr 都是必不可少的。

最终,melt/dcast 等同于 gather/spread,所以这是个人偏好,直到您需要其他 tidyr 功能,或者如果您想追随“tidyverse 趋势”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2018-05-08
    • 2015-06-08
    • 2014-12-19
    • 2019-01-22
    • 1970-01-01
    • 2015-03-19
    相关资源
    最近更新 更多