これはあなたの問題にとってやり過ぎかもしれませんがcompare()
、「比較」パッケージから調べることもできます。次の例を検討してください。
> data <- data.frame(A = c(1, 2, 3, 4), B = c(1, 2, 3, 4))
> compare(data[1], data[2]) ## Should be false
FALSE [TRUE]
> compare(data[1], data[2], ignoreNames = TRUE) # Allow different names
TRUE
dropped names
> data <- data.frame(A = c(1, 2, 3, 4), B = as.character(c(1, 2, 3, 4)))
> str(data) ## "B" is now a factor, so use `coerce` to test for equality
'data.frame': 4 obs. of 2 variables:
$ A: num 1 2 3 4
$ B: Factor w/ 4 levels "1","2","3","4": 1 2 3 4
> compare(data[1], data[2], ignoreNames = TRUE, coerce = TRUE)
TRUE
[A] coerced from <factor> to <numeric>
dropped names
一般的な論理引数 がありallowAll
、これを に設定しTRUE
て、compare
関数が異なる変換を試行して等価性をテストできるようにします。