gpt4 book ai didi

r - 为什么调用 `detach` 会导致 R 调用 "forget"函数?

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

有时我使用 attach 和一些子集术语来处理研究数据的奇数维度。为了防止“屏蔽”环境中的变量(实际上是警告消息本身),我只需调用 detach() 即可从 R 搜索路径中删除我正在使用的任何数据集。当我对脚本编写感到困惑时,我可能最终会调用 detach 几次。好吧,有趣的是,如果我足够调用它,R 会删除在启动时作为包的一部分加载的函数,例如 utilsstatsgraphics。为什么“分离”会移除这些功能?

最佳答案

R removes base functions from the search path, like plot and ? and so on.

这些被删除的函数通常被称为“基本”函数,但它们不是实际的‹base›包的一部分。相反,plot 来自包‹graphics›,而? 来自包‹utils›,它们都是R default packages 的一部分。 , 因此默认附加。这两个包都附加在之后package:base,并且您不小心用过多的detach 调用(package: base 本身 不能 被分离;这很重要,因为如果它被分离,你就不能重新附加它:所需的函数在 package:base 中).

为了扩展这一点,attachdetach 通常与包环境而不是数据集一起使用:启用使用函数从没有显式输入包名称(例如 graphics::plot)的包中,library 函数附加这些包。加载 R 时,默认会附加一些包。您可以在 Hadley Wickham 的 Advanced R 中找到更多相关信息。 .

如您所见,您还可以附加和分离数据集。但是,通常不鼓励这样做(事实上非常强烈)。相反,您可以使用基础包中的数据转换函数(例如,withtransform,正如 Moody_Mudskipper 在评论中指出的那样)或来自数据操作包(‹dplyr› 是最先进的;另一种选择是 ‹data.table› )。

关于r - 为什么调用 `detach` 会导致 R 调用 "forget"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52994194/

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