58

データフレームなどの2つのオブジェクトの値がRで等しいかどうかを確認するにはどうすればよいですか?

等しい値とは、1つのデータフレームの各列の各行の値が、2番目のデータフレームの対応する行と列の値に等しいことを意味します。

4

4 に答える 4

67

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.
于 2012-05-14T23:50:01.553 に答える
14

さらに、同一は依然として有用であり、実用的な目標をサポートしています。

identical(a[, "x"], b[, "y"]) # TRUE
于 2014-02-27T04:09:19.823 に答える
9

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ます。

于 2016-06-17T03:43:27.297 に答える