tidyr VS dplyr + reshape2

tidyr VS dplyr + reshape2

dplyr 结合使用 reshape2 而不是完全使用 tidyr 是否有任何优势或限制?

我不完全熟悉 reshape2 函数的 tidyr 等价物,我想了解切换到 tidyr 的原因是什么,因为我看到它更多以及更多 R 代码。

Tidyr 遵循 tidyverse 约定,例如 dplyr

  • 专为管道设计的函数%>%

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

  • rlang 整洁的点语义,就像其他 tidyverse 包一样,这意味着你可以使用 !!!!!,一旦你知道如何使用它们就非常强大他们。当然,如果你不使用带有 NSE 的函数,你可以在没有花哨语法的情况下做同样的事情......但是如果你已经使用 dplyr 你已经在任何地方使用 NSE。

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

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

我也应该说dplyrtidyr是互补的,所以我会挑战你的框架(tidyr) VS (dplyr + reshape2)dplyr 无论您使用 tidyr 还是 reshape2.

都是必不可少的

最终,melt/dcast 等同于 gather/spread,因此这是个人偏好,直到您需要其他 tidyr 功能,或者如果您想遵循“tidyverse趋势"。