#r #csv #dataframe #compare
#r #csv #фрейм данных #Сравнить
Вопрос:
два CSV считываются в два разных фрейма данных. при сравнении существует требование, которое отображает точное значение там, где существует разница.
Я пробовал which
использовать для них методы. он возвращает некоторые индексы, которые указывают на разницу между фреймами данных. Я попробовал приведенный ниже код:
test.data <- fread("file1.csv",stringsAsFactors = FALSE,blank.lines.skip = TRUE)
truth.data <- fread("file2.csv",stringsAsFactors = DALSE,blank.lines.skip = TRUE)
mismatch <- which(data.frame(test.data) != data.frame(truth.data))
print(mismatch)
его which
выводом являются индексы, такие как:
несоответствие > «3» «4» «8» » 9″
При доступе к различным значениям фреймов данных с помощью индексов, но либо оно выходит за рамки фрейма, либо печатается NA
.
Я также пробовал setdiff()
anti_join()
методы and, но они будут показывать только разные значения первого фрейма данных test.data
.
print(anti_join(data.frame(test.data), data.frame(truth.data)))
print(setdiff(data.frame(test.data), data.frame(truth.data)))
требуемый вывод такой, как предположим, в некоторой строке и определенном столбце в test.данные отличаются от truth.data. таким образом, эти оба разных значения должны отображаться на консоли.
например: как мы видим, два столбца из обоих образцов отличаются, поэтому мне нужно показать разные значения обоих фреймов данных рядом, чтобы мы могли легко различать их. количество столбцов может меняться, и более двух строк или столбцов имеют разные значения.
Помогите мне в этом. Заранее спасибо!!!
Комментарии:
1. Пожалуйста, добавьте образцы данных
dput
или некоторые фиктивные данные, с которыми мы можем работать.2. Я обновил вопрос, а также упомянул результат. Теперь помогите решить эту проблему.