1

我想测试以下内容:对于 test 中的每个值,x1如果它介于x2和之间x3。基本上,如果x2$x2< x1<x2$x3为真,则返回其为真的值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
4

1 回答 1

2

尝试以下操作:

x1$x1[其中(x1$x1 > x2$x2 & x1$x1 < x2$x3)]

which返回等式的索引向量(在这种情况下,为x1$x1 > x2$x2 & x1$x1 < x2$x3真。然后我们使用x1$x1[indices].

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

于 2012-07-26T22:23:21.773 回答