2013-06-11 107 views
-1

我在R中有兩列數據(說idmaster_id)。應該是id中的所有值應存在於master_id中。但是,我懷疑事實並非如此,我想確定哪些是錯誤的價值觀。因爲我正在處理100k數據的數據,所以我不能檢查數據。如何根據R中另一列的值找出一列中的錯誤值?

我該如何去尋找錯誤的值?

+0

如果您在兩欄中查找不同的值,可以使用'setdiff(id,master_id) 。它將返回不在'master_id'中的'id'的值 – DrDom

+1

這看起來是[頂級R問題之一]的重複(http://stackoverflow.com/questions/1299871/how-to-join -data幀-在-R-內外-左右/ 1300618#1300618)。另請參閱:?合併 –

+0

爲什麼downvote? – vad

回答

1

%in%函數可能派上用場。對於那些在第一組但不是第二組的情況,它將拋出FALSE

E.g.

DF$master_id %in% DF$id 

id爲master_id的子集,因此沒有一個對口master_id值將得到一個假

或者,看看它是如何工作的run(來自R幫助文件)

1:10 %in% c(1,3,5,9) 
0

Here's an answer從2天前開始:

library(data.table) 
DF1<-data.frame(x=1:3,y=4:6,t=10:12) 
DF2<-data.frame(x=3:5,y=6:8,s=1:3) 
library(data.table) 
DF1 <- data.table(DF1, key = c("x", "y")) 
DF2 <- data.table(DF2, key = c("x", "y")) 
DF1[!DF2] # maybe you want this? 
DF2[!DF1] # or maybe you want this? 
相關問題