我在R中有兩列數據(說id
和master_id
)。應該是id
中的所有值應存在於master_id
中。但是,我懷疑事實並非如此,我想確定哪些是錯誤的價值觀。因爲我正在處理100k數據的數據,所以我不能檢查數據。如何根據R中另一列的值找出一列中的錯誤值?
我該如何去尋找錯誤的值?
我在R中有兩列數據(說id
和master_id
)。應該是id
中的所有值應存在於master_id
中。但是,我懷疑事實並非如此,我想確定哪些是錯誤的價值觀。因爲我正在處理100k數據的數據,所以我不能檢查數據。如何根據R中另一列的值找出一列中的錯誤值?
我該如何去尋找錯誤的值?
%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)
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?
如果您在兩欄中查找不同的值,可以使用'setdiff(id,master_id) 。它將返回不在'master_id'中的'id'的值 – DrDom
這看起來是[頂級R問題之一]的重複(http://stackoverflow.com/questions/1299871/how-to-join -data幀-在-R-內外-左右/ 1300618#1300618)。另請參閱:?合併 –
爲什麼downvote? – vad