如何使用grep或任何其他方法来比较两个数据帧中不同的行号,并获得匹配和不匹配?

如何使用grep或任何其他方法来比较两个数据帧中不同的行号,并获得匹配和不匹配?,r,compare,match,mismatch,R,Compare,Match,Mismatch,下面是我的两个数据帧: ABData1 <- data.frame(id=c(11,12,13,14,15), a = c(1,2,3,4,5)) ABData2 <- data.frame(id=c(11,12,13,14), b = c(1,4,3,4)) 提前感谢。您可以使用以下功能: ABData1 <- data.frame(a = c(1,2,3,4,5)) ABData2 &

下面是我的两个数据帧:

ABData1 <- data.frame(id=c(11,12,13,14,15),
                      a = c(1,2,3,4,5))
ABData2 <- data.frame(id=c(11,12,13,14),
                      b = c(1,4,3,4))
提前感谢。

您可以使用以下功能:

ABData1 <- data.frame(a = c(1,2,3,4,5))
ABData2 <- data.frame(b = c(1,4,3,4))

equLength <- function(x, y) {
  if (length(x)>length(y)) length(y) <- length(x) else length(x) <- length(y)
  data.frame(a=x, b=y)
}

ABData <- equLength(ABData1$a, ABData2$b)

abdata为什么
a==3
匹配?那么不匹配中的
b==5
是从哪里来的呢?最终你可以这样使用:
equalength-length(y))length(y)jogo请看一看,我相信你能帮我。谢谢兄弟谢谢:)我们能在数据帧中添加一列,并将其作为输出使用,具有相同的功能吗?你能帮助我吗?我编辑了我的答案,因为你删除了另一个问题。
Expected match Output:

id    a     expected    b
11    1     1           1
13    3     3           3
14    4     4           4
Expected mismatch output:

id    a     expected    b
12    2     2           4
15    NA    NA          5
ABData1 <- data.frame(a = c(1,2,3,4,5))
ABData2 <- data.frame(b = c(1,4,3,4))

equLength <- function(x, y) {
  if (length(x)>length(y)) length(y) <- length(x) else length(x) <- length(y)
  data.frame(a=x, b=y)
}

ABData <- equLength(ABData1$a, ABData2$b)
library("dplyr")
resultMatch <- ABData %>% rowwise() %>% filter(grepl(a,b, fixed = TRUE))
resultMismatch <- ABData %>% rowwise() %>% filter(!grepl(a,b))
library("dplyr")

ABData1 <- data.frame(id=c(11,12,13,14,15),  a = c(1,2,3,4,5))
ABData2 <- data.frame(id=c(11,12,13,14),  b = c(1,4,3,4))

equLength <- function(x, y) {
  if (length(x)>length(y)) length(y) <- length(x) else length(x) <- length(y)
  data.frame(a=x, b=y)
}

if (nrow(ABData1)>nrow(ABData2)) ABData <- data.frame(ABData1, b=equLength(ABData1$a, ABData2$b)$b) else
  ABData <- data.frame(ABData2, a=equLength(ABData1$a, ABData2$b)$a)
  
resultMatch <- ABData %>% rowwise() %>% filter(grepl(a,b, fixed = TRUE))
resultMismatch <- ABData %>% rowwise() %>% filter(!grepl(a,b))