gpt4 book ai didi

r - T & F 如何作为 R 中 TRUE 和 FALSE 的缩写?

转载 作者:行者123 更新时间:2023-12-01 10:18:52 25 4
gpt4 key购买 nike

T 和 F 不是 R 中的保留关键字,而 TRUE 和 FALSE 是。但是,T和F在很多地方仍然可以作为TRUE和FALSE的缩写使用。

我在 R 语言规范中找不到对此的任何引用;也许我遗漏了什么:

https://cran.r-project.org/doc/manuals/R-lang.pdf

我知道如果 T 或 F 被覆盖,使用缩写会导致一些致命的错误结果:

T <- FALSE
print(T)
print(F)

所以我想知道是什么机制允许使用 T 和 F 作为缩写?为什么一开始就允许这样做?

编辑的额外说明:

写完这个问题后,我立即继续在 R 中工作,发现使用缩写而不是完整的 bool 值 TRUE 和 FALSE 是多么危险。因为我已经在我的 RStudio 控制台中测试了上面的代码,所以 T 在我的环境中被覆盖为 FALSE;当我开始运行一些脚本时,一切都开始出错,因为直到今天我一直使用缩写,当然 T 现在表现为 FALSE。

我花了 5 分钟才弄清楚出了什么问题,但如果我没有意识到这个问题并且最近才想到它,可能会花更长的时间。

所以不要使用缩写! :)

最佳答案

它们是 base 命名空间中的对象。

find("T")
[1] "package:base"
find("F")
[1] "package:base"

从技术上讲,您不会覆盖它们,而是在屏蔽这些对象的搜索路径中具有更高优先级的环境中创建对象(很可能是全局环境),但您仍然可以直接访问它们。

T <- FALSE
T
[1] FALSE
base::T
[1] TRUE

关于r - T & F 如何作为 R 中 TRUE 和 FALSE 的缩写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57570931/

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