Сравнение CSV и CSV в R - PullRequest
       2

Сравнение CSV и CSV в R

0 голосов
/ 16 ноября 2018

Мне нужно сравнить два CSV-файла в R и записать записи, которые не совпадают в обоих файлах.Я смог выполнить вышеупомянутую задачу с помощью приведенного ниже кода:

 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)
d <- c("ads", "ds", "abc")
e <- c(121, 345, 23)
f <- c(21,22,23)
trgt <- cbind.data.frame(d, e, f)
colnames(trgt) <- colnames(srce)

#Compare csv files
nn <- anti_join(srce, trgt)

В конечном результате я получаю несоответствие строк:

Output

Но мне нужно выяснить несовпадение ячеек в двух файлах:

Desired Output

Есть ли способ определить ячейки, которые не совпадают, чемцелые записи?

Спасибо Balaji.SJ

1 Ответ

0 голосов
/ 16 ноября 2018

Если вы используете аргумент 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"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...