使用 T & F 而不是 TRUE & FALSE 有什么问题吗?

Is there anything wrong with using T & F instead of TRUE & FALSE?

提问人:Rob 提问时间:8/15/2013 最后编辑:JaapRob 更新时间:9/3/2017 访问量:1601

问:

我注意到在 R 中使用 and 而不是 和 in 函数会给我相同的结果。当然,而且更简洁,但是,我看到并被更频繁地使用。TFTRUEFALSETFTRUEFALSE

我想知道两者之间有什么区别吗?使用 和 有什么问题吗?TF

R-常见问题

评论


答:

34赞 Joshua Ulrich 8/16/2013 #1

Tand 可以重新定义,但 和 是保留字,不能重新定义。FTRUEFALSE

> TRUE <- 1L
Error in TRUE <- 1L : invalid (do_set) left-hand side to assignment
> FALSE <- 0L
Error in FALSE <- 0L : invalid (do_set) left-hand side to assignment
> T <- F  # yikes, this would be hard to debug!

就我个人而言,当我以交互方式使用 R 时,我有时会使用 and,但我从不在生产代码或包中使用它们。TF

评论

7赞 Ari B. Friedman 8/16/2013
请注意,在 S+ 中,情况正好相反,保留字和变量是默认值。我希望在 R 中是这样,但 c'est la vie。TFTRUEFALSE
4赞 Carl Witthoft 8/16/2013
@AriB.弗里德曼:我认为这在一定程度上是遗传学界的错,出于某种原因,他们喜欢用“T”来表示其他东西。
7赞 Ari B. Friedman 8/16/2013
@CarlWitthoft很有趣。似乎他们从嘧啶计划中获利。
8赞 hadley 8/16/2013
你不允许在 cran 包中使用 - 所以如果你要提交给 cran,你无论如何都必须改变它们。TF