当我想进行字符串匹配的组合时,例如R:我遇到了问题
X <- colnames(df[substr(colnames(df),start=1,stop=3) == "PEC" | substr(colnames(df),start=1,stop=5) == "PRE1_" & substr(colnames(df),start=1,stop=5) != "PEC3"])
X将成为未来线性回归的自变量的df。 X由PECZZZ
,PRE1_ZZZ
组成,其中Z
字符是0到9之间的任何数字。PEC3
是因变量。因此,由于第一个字符串匹配将具有PEC3
,因为调用PEC
意味着PEC3
,所以我正在使用第三个字符串匹配将其删除。但是,上面的字符串匹配中的PEC3
的结果是:
TRUE | FALSE & FALSE = TRUE
为什么?如果是TRUE | FALSE = TRUE
和TRUE & FALSE = FALSE
。还是不遵循从左到右的通用顺序规则?
答案 0 :(得分:1)
R中的&
在|
之前。在此处查看运营商及其顺序的完整列表:https://stat.ethz.ch/R-manual/R-patched/library/base/html/Syntax.html