2016-07-20 71 views
0

我必須對幾乎相同的客戶信息文件進行比較。我想驗證一個文件與另一個文件。在R中有沒有一種好的方法可以確定兩個文件中'狀態'的不同?我試圖合併這兩個文件,並將文件2中的狀態更改爲status2,但遇到了問題,然後開始懷疑是否有更好的方法來解決這個問題。 我的數據是這樣的:將相同的值比較到R中的數據集

file 1      file 2 
CustomerID Status     CustomerID Status 
1709   low      1709  low  
1803   high      1803  low 
1951   medium     1951  medium 
+0

客戶ID合併似乎是對我來說最明智的選擇。你遇到了什麼問題? –

+1

'f12 < - merge(f1,f2,by ='CustomerID'); f12 $ equal.status < - f12 $ Status.x == f12 $ Status.y' – Jaap

+0

謝謝!我遇到的問題是文件1的狀態不合並。我意識到這些文件之間的名稱略有不同,出於某種原因一定會阻止它的出現。現在正在工作。謝謝! –

回答

0

謝謝大家的幫助。狀態變量的名稱略有差異,似乎導致不會導入合併。當我將相同的名字命名時,一切都很順利。

0

如果你讀你的文件到dataframes,說DF1和DF2。 !你可以嘗試像DF1 [「狀態」] = DF2 [「狀態」]

df1 = data.frame(id = c(1,2,3), status = c("low","low","high")) 
df2 = data.frame(id = c(1,2,3), status = c("high","low","high")) 

df1['status'] != df2['status'] 

status 
[1,] TRUE 
[2,] FALSE 
[3,] FALSE 
1

假設你命名你的文件file1file2無一不是等長的,你可以這樣做:

unequal <- which(file1$Status != file2$Status)

這將返回行索引號。如果你想擁有的客戶ID,你可以這樣做:

unequalCustomerID <- file1$CustomerID[unequal]

在一條語句,當然還是:

file1$CustomerID[which(file1$Status != file2$Status)]