2016-08-04 10 views
2

df = rbind(df, another_df)を使用して2つのデータフレームを結合できます。 dfanother_dfのrownamesが一致しないanother_dfdfから削除する必要がある場合、どうすればよいでしょうか。rのデータフレームからレコードのサブセットを削除

df = data.frame(A=c('a','aa','aaa'), B=c('b','bb','bbb')) 
rownames(df) 

another_df =data.frame(A=c('aa','a'), B=c('bb','b')) 
rownames(another_df)=c('3','4') 
+1

をサブセットに論理的なインデックスを作成するために使用することができますを使用することができます再現可能な小さな例と期待される出力。私は '' dplyr'から '?setdiff'または' anti_join'を調べるでしょう – akrun

+0

これは上記のコメントが良い例を作るのに役立ちますhttp://stackoverflow.com/help/mcve –

+0

akrunに感謝、dplyrのanti_joinが仕事をしました:)あなたが投稿した場合、私は答えとして受け入れたいです:) – SaikiHanee

答えて

2

我々はanti_join

library(dplyr) 
anti_join(df, another_df) 

それともこれはrownamesに基づいている場合、その%in%をご提示ください行

df[!row.names(df) %in% row.names(another_df),] 
0

これは、setdiffで非常に簡単にパッケージを使用することなく行うことができます。

df = data.frame(A=c('a','aa','aaa'), B=c('b','bb','bbb')) 
another_df =data.frame(A=c('aa','a'), B=c('bb','b')) 
s <- df[setdiff(rownames(df),rownames(another_df)),] 

は、必要な出力です。

関連する問題