为什么我不能在data.table的行选择中使用||和&&运算符?
为什么在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