2015-06-06 48 views
1

我在表中的列如下在一排消除重複的話

Col1 
    ======================== 
    "No","No","No","No","No" 
    "No","No","No" 
    Yes 
    No 
    "Yes","Yes","Yes","Yes" 
    "Yes","No","Yes", "Yes 

我想刪除重複的不和是與創建列這樣

  Col1 
    ======================== 
    No 
    No 
    Yes 
    No 
    Yes 
    Yes, No 

我開始

 kickDuplicates <- c("No","Yes") 
    # create a list of vectors of place names 
    broken <- strsplit(Table1$Col1, ",") 
    # paste each broken vector of place names back together 
    # .......kicking out duplicated instances of the chosen names 
    Table1$Col1 <- sapply(broken, FUN = function(x) paste(x[!duplicated(x) 
    | !x %in% kickDuplicates ], collapse = ", ")) 

但是這不起作用,我得到與以前一樣的原始列與重複項,有人可以告訴我,我在哪裏錯了嗎?

c("\"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\"", 
"\"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"Yes\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\"", 
"\"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\"", 
"\"No\", \"No\"", "\"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\", \"No\"", 
"No") 
+2

你能告訴一個'dput (表1)'? –

+2

您可能正在尋找'base :: unique',但正如David所言,如果不知道數據的外觀如何,就不可能說出來。 –

+0

@DavidArenburg馬修用這一列的dput更新了這個問題 – bison2178

回答

1

我認爲這將作爲你的最後一行:

Table1$Col1 <- sapply(broken,function(x) paste(unique(x), collapse=',')) 

因爲我包functional的粉絲,這裏是一個等價的:

sapply(broken, Compose(unique, Curry(paste, collapse=','))) 
+1

不要這麼想。你有沒有看到'輸入'?很糟糕的數據集。我想知道他們從哪裏得到的。 –

+0

@MatthewLundberg,David實際上,我將'strsplit(Table1 $ Col1,「,」)'改爲'strsplit(Table1 $ Col1,「,\\ s *」)'並且使用了Matthew所建議的和它的工作原理 – bison2178