为什么我不能在data.table的行选择中使用||和&&运算符?

8 浏览
0 Comments

为什么我不能在data.table的行选择中使用||和&&运算符?

为什么有四个逻辑运算符:

&, &&
|, ||

它们的用法有什么区别?

是的,我已经查看了文档,但还是有点困惑。文档中说:

‘&’和‘&&’表示逻辑与,‘|’和‘||’表示逻辑或。短形式与算术运算符类似,对每个元素进行逐个比较。长形式从左到右评估,仅检查每个向量的第一个元素。评估过程仅在确定结果时进行。长形式适用于编程控制流,通常在‘if’语句中更常用。

我认为一个例子将清楚地展示它们。谢谢。

0
0 Comments

为什么在data.table的行选择中无法使用||和&&运算符?

在data.table中,不能使用||和&&运算符进行行选择的原因是因为它们具有不同的工作方式和逻辑。在data.table中,使用&和|运算符来进行逻辑与和逻辑或的操作。

下面是这个问题出现的原因和解决方法:

原因:

1. 长形式的&&和||运算符具有短路功能,这意味着如果只通过验证第一个元素就可以确定结果的话,它们会停止验证。例如,在使用&&运算符时,如果前两个元素的比较结果为false,那么后面的元素的比较结果也将为false,所以它返回false。而在使用||运算符时,如果前面的元素的比较结果为true,我们可以确信后面的验证将不会改变结果,所以它返回true。

2. 短形式继续对整个向量进行比较,并创建一个结果向量返回。

解决方法:

在data.table中,应该使用&和|运算符代替&&和||运算符进行行选择。这样可以确保正确的逻辑运算和结果。

希望这能帮助到你。

来源:http://stat.ethz.ch/R-manual/R-patched/library/base/html/Logic.html

这个问题的答案中提到了一些示例,你可以参考这些示例来更好地理解。

注意:这些示例需要登录coursera才能查看。 More on R operators | Google Data Analytics Professional Certificate

0