r - tidyr VS dplyr + reshape2

标签 r dplyr tidyr reshape2

使用reshape2有什么优点或限制吗?关联于dplyr而不是完全使用tidyr

我不太熟悉 tidyr相当于reshape2功能,我想了解切换到 tidyr 的原因是什么只是当我在 R 代码中越来越多地看到它时。

最佳答案

Tidyr 遵循 tidyverse 约定,例如 dplyr:

  • 旨在与管道良好配合的函数%>%

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

  • rlang tidydots 语义,就像其他 tidyverse 包一样,这意味着您可以使用 !!!!! ,它们是一旦你知道如何使用它们,它们就会非常强大。当然,如果您不使用带有 NSE 的函数,您可以在没有花哨语法的情况下执行相同的操作...但是如果您已经使用 dplyr,那么您已经在各处使用了 NSE。

    <

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

此外,reshape2 专注于 reshape 数据(melt/cast),而 tidyr 则执行此操作(gather/spread) >)以及更多类似操作列(unite/separate/extract)、创建和使用列表列和嵌套数据/框架(nest/unnest)、处理缺失值(完成/扩展/填充)。

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

最终,melt/dcast 相当于 gather/spread,因此在您需要其他 tidyr 功能之前,这是个人偏好,或者如果您想追随“tidyverse 趋势”。

关于r - tidyr VS dplyr + reshape2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57410033/

相关文章:

r - 整洁的评估 : Adding an argument to a function that prevents gathering

r - 如何读取xlsb文件?

r - 使用旧数据更新新数据中的值

r - 对多个向量使用 case_when

r - 使用 dplyr、tidyr、purrr 分组多列收集

3 位字符序列的重复行值 - 整齐的数据

r - 将一个小的随机样本从一个大的 csv 文件加载到 R 数据框中

r - 如何对 R H2O 中某个因子的水平进行排序

string - R:变换不规则时间串

r - 在组内计算值变化前后的值,为每个独特的转变生成新变量