2

私は R を使い始めたばかりで、データフレームの 2 つの行から要素の交点を見つける方法を知りたいと思っています。私は試した

intersect(thing[1,],thing[2,])

しかし、それは私に完全なナンセンスな答えを与えました(交差点にあったものを省略しながら、交差点にないもの)。

この問題にどのようにアプローチすればよいですか?

4

1 に答える 1

3

列がすべて同じ型 (たとえば、すべての数値) の場合は、まず as.matrix を介して行列に変換してから、交差を適用します。たとえば、データ フレームの名前がzの場合:

zz <- as.matrix(z)
intersect(zz[1,], zz[2,])

列に異なるタイプの変数がある場合、レベル変数を整数と比較したくないため、実際に比較可能な列を最初に識別する必要がある場合があります。例えば:

z <- data.frame(AA = c( 1,   1,   3,   4), 
                BB = c( 1,   5,   3,   1),
                CC = c('1', 'a', 'b', 'b'),
                DD = c( 1,   2,   3,   4)
z[z[,1] == z[,3],1]

ここでは "1" が返されますが、"1" はレベル変数と数値変数でまったく異なる意味を持つ可能性があるため、数値変数とレベル変数を比較する必要はありません。

データフレームにいくつかの異なるタイプがあるシナリオには巧妙な解決策があるかもしれませんが、何も思い浮かびません...

于 2012-03-07T02:39:50.523 に答える