首页 文章

向R之类的逻辑运算符提供数字参数是一种很好的编程习惯吗? [关闭]

提问于
浏览
0

最近,我注意到有些人以这种方式使用R中的“&”运算符:

c(1:5) & c(6:10)
#[1] TRUE TRUE TRUE TRUE TRUE

或者另一个例子

c(-2:1) & c(3:6)
#[1]  TRUE  TRUE FALSE  TRUE

这里(https://mobile.twitter.com/drob/status/1008410647472803840/photo/1)是世界级数据科学家最近使用的例子之一(见第3和第4行的例子) .

我最初感到困惑,试图找出R正在做什么,但很快发现所有非零数字都自动转换为TRUE,而零自动转换为FALSE . 后来,我还在R-help文件中读到:

数字和复数向量将被强制转换为逻辑值,零为假,所有非零值均为真 .

我的问题是:

  • a . )这种编程风格有哪些优势?有点可怕的是,如果我不小心提供了带有“&”的R两个数字向量,它将提供基于自动转换的结果而没有任何警告(可能做我甚至不打算做的事情)! b . )不应该要求逻辑运算符将逻辑值作为参数吗?

  • 其他编程语言是否允许将数字自动转换为逻辑值?这是标准做法吗?

非常感谢您提供的任何见解

1 回答

  • 1

    它只是为您节省了将数值转换为逻辑的麻烦,仅此而已 .

    是的,其他语言做同样的事情 . 例如在python中

    if 1:
        print("yes")
    

相关问题