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
).
我也应该说dplyr
和tidyr
是互补的,所以我会挑战你的框架(tidyr)
VS (dplyr + reshape2)
。 dplyr
无论您使用 tidyr
还是 reshape2
.
都是必不可少的
最终,melt/dcast
等同于 gather/spread
,因此这是个人偏好,直到您需要其他 tidyr
功能,或者如果您想遵循“tidyverse
趋势"。
与 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
).
我也应该说dplyr
和tidyr
是互补的,所以我会挑战你的框架(tidyr)
VS (dplyr + reshape2)
。 dplyr
无论您使用 tidyr
还是 reshape2
.
最终,melt/dcast
等同于 gather/spread
,因此这是个人偏好,直到您需要其他 tidyr
功能,或者如果您想遵循“tidyverse
趋势"。