удаление повторяющихся слов в строке

У меня есть столбец в таблице, как показано ниже

    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")

person bison2178    schedule 06.06.2015    source источник
comment
Можешь показать dput(Table1)?   -  person David Arenburg    schedule 07.06.2015
comment
Вы, вероятно, ищете base::unique, но, как предполагает Дэвид, невозможно сказать, не зная кое-что о том, как выглядят ваши данные.   -  person Matthew Lundberg    schedule 07.06.2015
comment
@DavidArenburg Мэтью обновил вопрос, указав вывод из этой колонки.   -  person bison2178    schedule 07.06.2015


Ответы (1)


Я думаю, что это будет работать как ваша последняя строка:

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

Поскольку я фанат пакета functional, вот его эквивалент:

sapply(broken, Compose(unique, Curry(paste, collapse=',')))
person Matthew Lundberg    schedule 06.06.2015
comment
Не думайте так. Вы видели dput? Довольно запутанный набор данных. Интересно, откуда они это взяли? - person David Arenburg; 07.06.2015
comment
@MatthewLundberg, Дэвид На самом деле я изменил strsplit(Table1$Col1, ",") на strsplit(Table1$Col1, ",\\s*") и использовал то, что предложил Мэтью, и это сработало. - person bison2178; 07.06.2015