假设我有一个数据框,其中包含3列数据(a,b,c)和1列类别数据,每个类别都有多个实例(class)。
set.seed(273)
a <- floor(runif(20,0,100))
b <- floor(runif(20,0,100))
c <- floor(runif(20,0,100))
class <- floor(runif(20,0,6))
df1 <- data.frame(a,b,c,class)
print(df1)
a b c class
1 31 73 28 3
2 44 33 57 3
3 19 35 53 0
4 68 70 39 4
5 92 7 57 2
6 13 67 23 3
7 73 50 14 2
8 59 14 91 5
9 37 3 72 5
10 27 3 13 4
11 63 28 0 5
12 51 7 35 4
13 11 36 76 3
14 72 25 8 5
15 23 24 6 3
16 15 1 16 5
17 55 24 5 5
18 2 54 39 1
19 54 95 20 3
20 60 39 65 1
我有另一个数据框,与前面提到的数据框相同,包含3列数据和分类列,但每个分类(类别)只有一个实例。
a <- floor(runif(6,0,20))
b <- floor(runif(6,0,20))
c <- floor(runif(6,0,20))
class <- seq(0,5)
df2 <- data.frame(a,b,c,class)
print(df2)
a b c class
1 8 15 13 0
2 0 3 6 1
3 14 4 0 2
4 7 10 6 3
5 18 18 16 4
6 17 17 11 5
如何对第一个数据框进行子集操作,以便仅保留每个类别中a、b和c均大于第二个数据框中的值的行?例如,如果
class == 0
且a > 8 & b > 15 & c > 13
,则只想要这些行。请注意,我不想合并数据框,因为第二个数据框是第一个数据框中最低可接受值。