如何使用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))