【发布时间】:2020-02-03 19:37:35
【问题描述】:
给定这个data.frame:
var1 <- c(1, 2)
var2 <- c(3, 4)
var3 <- c(5, 6)
df <- expand.grid(var1 = var1, var2 = var2, var3 = var3)
var1 var2 var3
1 1 3 5
2 2 3 5
3 1 4 5
4 2 4 5
5 1 3 6
6 2 3 6
7 1 4 6
8 2 4 6
我想确定与该向量匹配的 data.frame 行号(本例中的答案为 4):
vec <- c(var1 = 2, var2 = 4, var3 = 5)
var1 var2 var3
2 4 5
我似乎无法整理出简单的子集方法。我能想到的最好的方法如下:
working <- apply(df, 2, match, vec)
which(apply(working, 1, anyNA) == FALSE)
这似乎不如预期的那么简单;我想知道是否有更直接的解决方案?
【问题讨论】: