我需要創建一個新數據幀兩個現有數據幀,其中新數據幀是第一個數據幀中的每一行,而不是第二個數據幀。我發現一些代碼here使用合併功能,允許我這樣做。基本上,如果最後的合併結果有結果,那麼該行的數據幀,我不把它添加到我的新的一個:R從兩個數據幀之間的唯一行創建新數據幀的高效方法
for (j in 1:nrow(my.df)) {
if(nrow(merge(my.df[j,],sample.df))==0) {
test.df <- rbind(test.df,my.df[j,])
}
}
的問題是,for循環非常慢。考慮到我的限制,是否有更有效的方法來構建數據框架?
my.df
A B class
1 2 x
2 3 y
3 4 z
sample.df
A B class
1 2 x
test.df
應該像
A B class
2 3 y
3 4 z
看看'?dplyr :: setdiff()'和'?dplyr :: anti_join() '以獲得更多的幫助,請發送一個理想輸出的可重現的例子:) – Nate
代碼是可重複的,您只需要兩個數據幀,您將得到我期待的輸出(代碼原樣)。我只是在尋找更快的方法。 – xjtc55
'my.df'看起來像什麼?怎麼樣'sample.df'? – Nate