2つのオブジェクト、たとえばデータフレーム、Rの値は等しいですか?
値が等しいということは、1つのデータフレームの各列の各行の値が、2番目のデータフレームの対応する行と列の値に等しいことを意味します。
2つのデータフレームが「値が等しい」かどうかをテストすることの意味は明確ではありませんが、値が同じかどうかをテストすることは、同じ値を持つ2つの非同一データフレームの例です。
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.
さらに、同一は依然として有用であり、実用的な目標をサポートします。
identical(a[, "x"], b[, "y"]) # TRUE
Rパッケージcompare
を使用して、オブジェクトの名前と値が同じかどうかを1ステップでテストできます。
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
などの興味深い関数が追加されています。