gpt4 book ai didi

r - 什么时候用 dplyr (tidyverse) 编码比基本 R 更复杂?

转载 作者:行者123 更新时间:2023-12-04 13:16:25 28 4
gpt4 key购买 nike

关闭。这个问题是opinion-based .它目前不接受答案。












想改善这个问题吗?更新问题,以便可以通过 editing this post 用事实和引文回答问题.

去年关闭。




Improve this question




看完令人信服的书R for Data Science我对所有 tidyverse 感到兴奋函数,尤其是转换和数据整理组件 dplyrtidyr .与基础 R 相比,使用这些编码似乎节省了大量时间并提高了可读性。但我使用的越多 dplyr ,我遇到的情况似乎相反。在我的最后一个 questions我问如何用 NA 替换行s 如果变量之一超过某个阈值。在 base我会简单地做

df[df$age > 90, ] <- NA

建议使用的两个答案
df %>% select(x, y, age) %>% mutate_all(~replace(.x, age> 90, NA))
# or
df %>% mutate_all(function(i) replace(i, .$age> 90, NA))

这两个答案都很棒,我很感激得到它们。尽管如此,基础 R 中的代码对我来说似乎要简单得多。现在我面临另一种情况,我的代码带有 dplyr也复杂得多。我知道某些代码是否复杂是一种主观印象,但更客观地说,我会说 nchar(dplyr_code) > nchar(base_code)在许多情况下。

此外,我注意到如果我需要编写的代码是关于行而不是列的操作,我似乎更经常遇到这种情况。可以说可以使用 tidyr来自 tidyverse转置数据以将行更改为列。但即使这样做在 tidyverse 中似乎也复杂得多。框架比在基础 R 中(见 here)。

我的问题是我是否面临这个问题,因为我对 tidyverse 很陌生。或者是否是使用 base 编码的情况在某些情况下效率更高。如果是后者: 当使用 base 更有效地编码时,是否有在抽象级别上总结的资源?与 tidyverse或者你能说明一些情况吗? 我问是因为有时我会花相当多的时间来弄清楚如何使用 tidyverse 解决问题。最后我注意到 base在这种情况下是一种更方便的编码。知道何时使用 tidyversebase数据整理和转换可以节省我很多时间。

如果这个问题太宽泛,请告诉我,我会尝试改写或删除问题。

最佳答案

如果您在基础 R 中有一个干净、易读且功能正常的解决方案,而且看起来更合适,为什么还要再增加一层?也许在脚本中保持相同的接口(interface)(管道),以提高可读性?但是正如您所说,与基础 R 相比,tidyverse 并不总是保证这一点。

一个主要区别是:

Base R 高度关注稳定性,而 tidyverse 不能保证这一点。来自他们自己的文档:“tidyverse 将在寻找更好的界面时做出重大改变”( https://tidyverse.tidyverse.org/articles/paper.html )。

这使得基础 R 在某些情况下成为生产环境的更好合作伙伴,因为您可能会发现 tidyverse 函数随着时间的推移而被弃用和改变。我自己更喜欢包中尽可能少的依赖项。

关于r - 什么时候用 dplyr (tidyverse) 编码比基本 R 更复杂?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59963652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com