我試圖在兩列(每行)中測試相等性。但是,我的數據不是數字。我正在使用的數據集合是從兩個數據集中合併而來的。通過數據我發現,應該是相同的列實際上是不同的。這是一個非常大的數據集(大約300K obs),所以我試圖編碼。在兩列(因子/字符數據)中逐行測試是否相等
E.g. Source.x來自合併函數中的第一個數據集,Source.y來自合併函數中的第二個數據集。
RightID Source.x Source.y
1000 Ground Unnamed Stream
1001 Ground Ground
1002 Stream Stream
1003 Bear Creek Ground
我想返回一個新的數據幀,因爲它們只包含觀測值1000和1003。我曾嘗試下面的代碼...
lapply(rights, rights$Source.x == rights$Source.y
filter(rights, rights$Source.x == rights$Source.y
filter(rights, identical(Source.x, Source.y)
但是,因爲數據是在要素/字符格式,並有不同程度的因源名稱的變化,沒有我的代碼管理工作。 Source.x擁有6743個等級,Source.y擁有6457個等級。據我所知,我的問題沒有公佈的解決方案,詳細闡述了這個等級問題。如果任何人有任何建議,將不勝感激。
爲避免出現因素,當您讀取數據時可以使用'stringsAsFactors = F'選項,或者如果您使用'dplyr',則可以使用'data_frame'將字符串列保留爲字符串。 – rconradin