2015-04-15 51 views
0

我有一個包含數百萬條記錄和6列的大型csv文件。我想獲得一列中的唯一記錄,即「名稱」和與「名稱」中唯一記錄相關聯的列。假設我獲得了50,000個唯一的「名稱」記錄,我希望獲得與這50,000條記錄關聯的其他5列。我知道如何獲得專欄中的獨特記錄。在下面的代碼中,我將名稱列(第一列)過濾掉,並將其放入單獨的數據框中,然後使用唯一函數返回唯一記錄。但我不確定如何爲這些獨特的記錄獲得其他5列。獲取r中唯一記錄的相應列

m <- read.csv(file="Test.csv", header=T, sep=",", 
       colClasses = c("character","NULL","NULL","NULL","NULL","NULL")) 
names <- unique(m, incomparables = FALSE) 
+0

'merge',像'資源< - 合併(姓名,M)'會給你所有的與唯一名稱關聯的數據,但顯然會大於50,000條記錄。或者你是否在每個獨特名稱的特定記錄之後,例如第一個,最後一個或其他條件? – tospig

+0

@Bruno:其他5列對於您的姓名列(第1列)將是唯一的。如果你在你的50000記錄表上使用'unique'函數,它將刪除後面的重複值,你的值將小於50K。 –

回答

1

是的,其他的將是唯一的w.r.t.你的第一列。如果相同名稱已重複,並且在其他5列中的至少一列中具有不同的條目,則該行將被視爲唯一的一個。

m <- read.csv(file="Test.csv", header=T, sep=",", colClasses = c("character","NULL","NULL","NULL","NULL","NULL")) 
m <- unique(m) #remove duplicates 
Subset <- m[1:50000,] #subset first 50000 rows 

請參考以下鏈接以便更好地理解:

https://stat.ethz.ch/R-manual/R-devel/library/base/html/unique.html

Unique on a dataframe with only selected columns