2016-10-26 36 views
1

我在這裏搜索高低,以及嘗試重複和獨特的功能爲我要問,但不能得到任何工作。假設我有一個名爲company的數據框,其狀態是可變的。當我在狀態變量觀察一個崩潰我留下的行與此輸出:刪除單元格中的重複條目 - R

PA;PA;PA;TX;TX 

我怎麼能去除細胞內的DUP(爲此事整個矢量),所以它看起來如下:

PA;TX 

我沒有問題,刪除重複行,但似乎無法做到這一點的細胞本身。

+1

你需要按行來做這件事?也許提供一個例子,說明你的數據幀實際上看起來像 –

+0

如果字符串是'PA; TX; PA; TX'?一樣? –

+0

似乎更好的想法是從原始數據框中刪除多餘的行。 – Joe

回答

2

本工程爲一個字符串:

x <- "PA;PA;PA;TX;TX" 

x2 <- strsplit(x, ";") 

x3 <- unlist(x2) 

x4 <- unique(x3) 

x5 <- paste(x4, collapse = ";") 

如果你想這樣做對整個矢量company$state,你可以滾所有成一個呼叫sapply

sapply(company$state, function(x) paste(unique(unlist(strsplit(x, ";"))), collapse = ";")) 
+0

感謝ulfelder!第一部分工作正常,但是當我嘗試將其應用於向量時,出現以下錯誤:strsplit(x,「;」)中的錯誤:非字符參數。任何想法這裏發生了什麼? – DCRubyHound

+0

當你嘗試在字符串以外的東西上運行'strsplit'時,出現非字符參數的事情,比如數據框或矩陣。你嘗試過'sapply'版本嗎? – ulfelder

+0

是的,那是當我收到錯誤。 – DCRubyHound