我有两个数据框:
df1 <- data.frame(cola = c("dum1", "dum2", "dum3"), colb = c("bum1", "bum2", "bum3"), colc = c("cum1", "cum2", "cum3"))
Run Code Online (Sandbox Code Playgroud)
和:
df2 <- data.frame(cola = c("dum1", "dum2", "dum4"), colb = c("bum1", "bum2", "bum3"))
Run Code Online (Sandbox Code Playgroud)
我需要找到数据框中的行索引df1,其中列cola和colb相同,这里是第 1 行和第 2 行。我知道包inner_join中的函数dplyr,但这会产生一个新的数据框。我只需要一个带有索引的向量。我可以对所需的每一列执行此操作which,但如果我需要基于大量列查找公共行,这将很难看。
任何帮助深表感谢。
解决这个问题的更一般的典型方法如下:
colsToUse <- intersect(colnames(df1), colnames(df2))
match(do.call("paste", df1[, colsToUse]), do.call("paste", df2[, colsToUse]))
Run Code Online (Sandbox Code Playgroud)
[1] 1 2 不适用