Подтвердить что ты не робот

Сравните, если два объекта dataframe в R равны?

Как проверить, есть ли два объекта, например. dataframes, равны значению в R?

По значению, равному, я имею в виду, что значение каждой строки каждого столбца одного кадра данных равно значению соответствующей строки и столбца во втором блоке данных.

4b9b3361

Ответ 1

Неясно, что значит проверить, являются ли два кадра данных "равными по значению", но для проверки, являются ли значения одинаковыми, вот пример двух неидентичных фреймов с равными значениями:

a <- data.frame(x = 1:10)
b <- data.frame(y = 1:10)

Чтобы проверить, равны ли все значения:

all(a == b) # TRUE

Чтобы проверить, идентичны ли объекты (они нет, у них разные имена столбцов):

identical(a,b) # FALSE: class, colnames, rownames must all match.

Ответ 2

Кроме того, идентичный по-прежнему полезен и поддерживает практическую цель:

identical(a[, "x"], b[, "y"]) # TRUE

Ответ 3

Мы можем использовать пакет R compare, чтобы проверить, совпадают ли имена объекта и значения, всего за один шаг.

a <- data.frame(x = 1:10)
b <- data.frame(y = 1:10)

library(compare)
compare(a, b)
#FALSE [TRUE]#objects are not identical (different names), but values are the same.

Если мы будем заботиться только о равенстве значений, мы можем установить ignoreNames=TRUE

compare(a, b, ignoreNames=T)
#TRUE
#  dropped names

Пакет имеет дополнительные интересные функции, такие как compareEqual и compareIdentical.