我想测试以下内容:x1
测试中的每个值是否介于x2
和x3
之间。基本上如果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
答案 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]
选择正确的元素。
请注意在不等式中使用&
而不是&&
,因为您正在使用向量而不是单个元素。