Если вы используете аргумент stringsAsFactors = FALSE
с cbind.data.frame
, простое логическое сравнение поможет:
library(dplyr)
a <- c("ads", "ads", "abc")
b <- c(121, 345, 23.300)
c <- c(21,22,23)
srce <- cbind.data.frame(a,b,c, stringsAsFactors = FALSE)
d <- c("ads", "ds", "abc")
e <- c(121, 345, 23)
f <- c(21,22,23)
trgt <- cbind.data.frame(d, e, f, stringsAsFactors = FALSE)
colnames(trgt) <- colnames(srce)
# logical comparison:
srce == trgt
a b c
[1,] TRUE TRUE TRUE
[2,] FALSE TRUE TRUE
[3,] TRUE FALSE TRUE
Чтобы сравнить два кадра данных и извлечь имена столбцов столбцов с несоответствиямивычислите colSums
матрицы srce != trgt
и отобразите имена всех столбцов с помощью colSums > 0
:
names(which(colSums(srce != trgt, na.rm = TRUE) > 0))
[1] "a" "b"