为诸如&;之类的逻辑运算符提供数值参数是否是良好的编程实践;在R?
最近,我注意到一些人在R中使用“&”运算符的方式如下:为诸如&;之类的逻辑运算符提供数值参数是否是良好的编程实践;在R?,r,logical-operators,R,Logical Operators,最近,我注意到一些人在R中使用“&”运算符的方式如下: c(1:5) & c(6:10) #[1] TRUE TRUE TRUE TRUE TRUE 或者另一个例子 c(-2:1) & c(3:6) #[1] TRUE TRUE FALSE TRUE 这里()是一位世界级的数据科学家最近使用这种方法的一个例子(参见第3行和第4行的例子) 起初,我试图弄清楚R在做什么,但很快就注意到所有非零数字都会自动转换为真,而零则会自动转换为假。稍后,我还在R-help文件中读到:
c(1:5) & c(6:10)
#[1] TRUE TRUE TRUE TRUE TRUE
或者另一个例子
c(-2:1) & c(3:6)
#[1] TRUE TRUE FALSE TRUE
这里()是一位世界级的数据科学家最近使用这种方法的一个例子(参见第3行和第4行的例子)
起初,我试图弄清楚R在做什么,但很快就注意到所有非零数字都会自动转换为真,而零则会自动转换为假。稍后,我还在R-help文件中读到:
数字和复数向量将强制为逻辑值,并使用
零为假,所有非零值为真
我的问题是:
非常感谢您提供的任何见解它只会为您省去将数值转换为逻辑值的麻烦,仅此而已 是的,其他语言也做同样的事情。例如在python中
if 1:
print("yes")
你阅读了语言定义,所以你知道这是合法的。关于这是否是良好实践的一个大争论在这个网站上并不真正合适。为了为David的例子辩护,他从
rbinom(n,1,0.5)
中提取,这只会给出1
或0
。使用1:5
etc进行逻辑比较是相当令人困惑的。@user2554330感谢您提醒我这个问题可能与本网站的目标无关。