行数は異なりますが、列数は同じ 2 つのデータ フレームがあります。以下の例では、データ フレーム 1 は 4 x 2、データ フレーム 2 は 3 x 2 です。TRUE がデータ フレームのすべての行が一致することを示す 4 x 3 論理行列が必要です。この例は機能しますが、より大きなデータ フレームで実行するには非常に長い時間がかかります (約 5,000 行の 2 つのデータ フレームを試していますが、まだ 2 列しかありません)。これを行うより効率的な方法はありますか?
> df1 <- data.frame(row.names=1:4, var1=c(TRUE, TRUE, FALSE, FALSE), var2=c(1,2,3,4))
> df2 <- data.frame(row.names=5:7, var1=c(FALSE, TRUE, FALSE), var2=c(5,2,3))
>
> m1 <- t(as.matrix(df1))
> m2 <- as.matrix(df2)
>
> apply(m2, 1, FUN=function(x) { apply(m1, 2, FUN=function(y) { all(x==y) } ) })
5 6 7
1 FALSE FALSE FALSE
2 FALSE TRUE FALSE
3 FALSE FALSE TRUE
4 FALSE FALSE FALSE
助けてくれてありがとう。