比较矢量

时间:2012-07-26 22:00:43

标签: r

我想测试以下内容:x1测试中的每个值是否介于x2x3之间。基本上如果x2$x2< x1< x2$x3为true,返回x1的值为真。在这种情况下,他们都将是真的。如果我应该编写一个函数或者是否有内置的东西来执行此操作,我会感到困惑?

x1 <- data.frame(x1=11:20, stringsAsFactors=FALSE)
> x1
   x1
1  11
2  12
3  13
4  14
5  15
6  16
7  17
8  18
9  19
10 20

x2 <- 1:10
x3 <- 21:30
x2 <- data.frame(x2, x3, stringsAsFactors=FALSE)

> x2
   x2 x3
1   1 21
2   2 22
3   3 23
4   4 24
5   5 25
6   6 26
7   7 27
8   8 28
9   9 29
10 10 30

1 个答案:

答案 0 :(得分:2)

尝试以下方法:

x1 $ x1 [其中(x1 $ x1&gt; x2 $ x2&amp; x1 $ x1&lt; x2 $ x3)]

which返回一个索引向量,其等式(在本例中为x1$x1 > x2$x2 & x1$x1 < x2$x3成立。然后我们使用x1$x1[indices]选择正确的元素。

请注意在不等式中使用&而不是&&,因为您正在使用向量而不是单个元素。