升级至R 4.3.2后,双条件统计行数的R语句报错求助
问题原因与解决方法
- 报错根源:你用了标量逻辑运算符
&&,它只对向量的第一个元素做逻辑判断,但你的条件是针对整个数据框列(长度710的向量)的逐元素判断,R 4.3.2对这种类型不匹配的检查比3.x更严格,因此抛出错误。 - 修复方案:把
&&换成向量逻辑运算符&,&会对向量里的每个元素逐一做逻辑判断,满足你的双条件筛选需求。
修正后的代码
intCountTheNumberOfBackgroundCPUPctRows = nrow(MyData[(MyData$column == "background-cpu-pct" & MyData$OracleDatabaseEntity == myvar), ])
更简洁的写法
统计符合条件的行数,还可以直接用sum()计算逻辑向量中TRUE的数量(TRUE会被转成1,FALSE转成0),效率更高:
intCountTheNumberOfBackgroundCPUPctRows = sum(MyData$column == "background-cpu-pct" & MyData$OracleDatabaseEntity == myvar, na.rm = TRUE)
注:na.rm = TRUE用来忽略数据里的NA值,避免统计结果出现NA,可根据实际数据情况选择是否添加。
内容的提问来源于stack exchange,提问作者user7945126
相关产品推荐
相关产品推荐

