R 如何获取包含两个其他值之间的值的数据帧行?

R 如何获取包含两个其他值之间的值的数据帧行?,r,dataframe,range,R,Dataframe,Range,因此,我想在data.frame的列中查找定义值范围内的值: example [1] 6 2 4 3 5 1 pos [1] 1 3 2 现在我想得到下面两条语句都为真的示例值,这样我只得到介于pos-1和pos+1之间的值: if(example < pos - 1) if(example > pos + 1) 提前谢谢 因此@David Arenburg建议的解决方案如下: indx <- sapply(example[, 4], function(x) an

因此,我想在data.frame的列中查找定义值范围内的值:

  example
 [1] 6 2 4 3 5 1
 pos
 [1] 1 3 2
现在我想得到下面两条语句都为真的示例值,这样我只得到介于
pos-1
pos+1
之间的值:

if(example < pos - 1)
if(example > pos + 1)

提前谢谢

因此@David Arenburg建议的解决方案如下:

indx <- sapply(example[, 4], function(x) any(x < pos + 1) & any(x > pos - 1)) 

这将在指定列中搜索data.frame,以查找定义范围内的值,并只提供所需的行

设置最小和最大阈值,然后将每个元素与它们进行比较

maxind <- max(pos + 1)
minind <- min(pos - 1)

您说过
示例
只包含一列,那么为什么要使用
示例[,4]
选择一个不存在的列呢?你为什么不为初学者提供一个可复制的例子?我有一种感觉,当你试图重现你的错误时,你会明白它最初是从哪里来的。
pos
只有6个值,所以它只是被循环使用。您不是在与
pos
中的所有值进行比较,而是将
示例[,4]
中的每个值与
pos
中的一个(回收)值进行比较。您是否试图将
示例[,4]
中的每个值与
pos
中的每个值进行比较?我想您正在寻找类似
indx pos-25]
的东西。然后只需执行
example[indx,-4]
所提供示例的预期输出是什么?因此
example[sapply(示例,函数(x)any(x>pos-1)和any(x
应该可以工作<代码>4不符合第二个条件,因此不应存在
example[indx,]
maxind <- max(pos + 1)
minind <- min(pos - 1)
example[sapply(example, function(x) x > minind & x < maxind)]
## [1] 2 3 1
example[example > minind & example < maxind]
## [1] 2 3 1
library(data.table)
example[between(example, minind, maxind, incbounds = FALSE)]
## [1] 2 3 1