5

データ フレームの 2 つの行を比較して ID を確認したいと考えています。このタスクには同一の()関数が適していると思いますが、期待どおりに機能しません。最小限の例を次に示します。

x=factor(c("x","x"),levels=c("x","y"))
y=factor(c("y","y"),levels=c("x","y"))
df=data.frame(x,y)
df
  x y
1 x y
2 x y

identical(df[1,],df[2,])
[1] FALSE
> df[1,]==df[2,]
     x    y

1 TRUE TRUE

同一の()がFALSEを返す理由を誰か説明できますか?

ありがとう、トーマス

4

2 に答える 2

5
identical(df[1,],df[2,])
#[1] FALSE
all.equal(df[1,],df[2,])
#[1] "Attributes: < Component 2: Mean relative difference: 1 >"

all.equal(df[1,],df[2,],check.attributes = FALSE)
#[1] TRUE

anyDuplicated(df[1:2,])>0
#[1] TRUE
于 2013-06-13T09:50:34.370 に答える