2017-07-31 13 views
-1

私は2つの異なるデータフレームdf1とdf2を持っています。私は、df2内の観測値をdf1から削除する必要があります。私はすべての行と列を介してループを行い、値がdf2の範囲内にあるかどうかをチェックしていればそれを削除します。おそらくもっと速い方法があるのだろうかと思っていました。これは私が、今データフレームからの観測の削除R

`for(i in 1:nrow(df1)){ 
for(j in 1:ncol(df1)){ 
    if(df[i,j] %in% df2){ 
    df[i,j] <- 'NA' 
    } 
} 
}` 

は、私は、行全体を削除したくないまでDF2にあり、左にセルをシフト値だけを持っているものです。 を入力し、すべてのNA値を削除します。どうもありがとうございました。

+0

を、再現性のあるデータを追加し、望ましい結果、および何を明確にしてください「すべてのNA値を削除する」という意味です。要素はdata.frames内で削除することはできません。 –

+0

@Frankこれは前のリンクの複製のようではありません...私は@OPを満足すると思われる答えを持っていますが、 'duplicate'タグのために投稿できません – CPak

+0

@ChiPak OPをロビーにして、希望の出力を伴う例それがなければ、私はこのQ&Aがより良い答えであっても役立つとは思わない。 – Frank

答えて

-1

確認するIDまたはキーがありますか?あなたはdplyrパッケージにanti_joinを使用することができるはず

は、しかし、それはDF1からDF2の行全体に行全体をチェックします。

?anti_join 
"return all rows from x where there are not matching values in y, 
keeping just columns from x." 
+0

ええ、私はアンチ・ジョインが最もクリーンな方法だと思います。 "df1からdf2の行全体をチェックする" - by = '引数は、比較されるカラムを制限することができます。とにかく、私はこれをより詳細なものにする必要があるので、単に投票します。また、あなたが明確な質問をしているならば、彼らは "答え"の一部ではないOPへのコメントでなければなりません。 – Frank

関連する問題