R:`which`语句有多个条件

Abd*_*del 25 r which

我有一个由13列(称为PC)组成的矩阵.我想创建一个新矩阵,只包含值介于4和8之间的行(称为EUR).我尝试使用这个声明:

EUR <- PCs[which(PCs$V13 < 9 && PCs$V13 > 3), ]
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用......(我只有一排,而有几百个)

谁知道这个命令有什么问题?

Rya*_*son 48

&&功能未矢量化.你需要这个&功能:

EUR <- PCs[which(PCs$V13 < 9 & PCs$V13 > 3), ]
Run Code Online (Sandbox Code Playgroud)

  • 是的,在手册中它写道"&和&&表示逻辑AND和|和||表示逻辑OR.较短的表单执行元素比较与算术运算符的方式非常相似.较长的表单从左到右计算仅检查第一个每个向量的元素.评估仅在确定结果之前进行.较长的形式适用于编程控制流程,通常在if子句中是优选的." (3认同)