私は、行ごとに2つの列に等しいかどうかをテストしようとしています。しかし、私のデータは数字ではありません。私が扱っているデータセットは、2つのデータセットからマージされました。データを調べると、同じでなければならない列が実際に異なっていることが気付きました。これは非常に大きなデータセット(約300K obs)なので、私はコードを作成しようとしています。2つの列(因子/文字データ)の等しいかどうかの行ごとのテスト
など。 Source.xはマージ関数の最初のデータセットからのもので、Source.yはマージ関数の2番目のデータセットからのものです。
RightID Source.x Source.y
1000 Ground Unnamed Stream
1001 Ground Ground
1002 Stream Stream
1003 Bear Creek Ground
これ以降、観測値1000と1003を含む新しいデータフレームを返したいと思います。データは、因子/文字形式で、ソース名の変動に起因するさまざまなレベルを持っているので、私は、次のコードを試してみました...
lapply(rights, rights$Source.x == rights$Source.y
filter(rights, rights$Source.x == rights$Source.y
filter(rights, identical(Source.x, Source.y)
はしかし、私のコードのどれも動作するように管理していません。 Source.xには6743のレベルがあり、Source.yには6457があります。私の知る限りでは、このレベルの問題について詳述している私の問題に対する投稿された解決策はありません。誰かが何か提案があれば、それは非常に高く評価されるだろう。
データを読むときにオプション 'stringsAsFactors = F'を使うこともできますし、' dplyr'を使うと文字列を文字列として保持する 'data_frame'を使うこともできます。 – rconradin