2017-06-02 140 views
-1

我有一個正在讀入的字符串向量,但是每個條目在我想要刪除的字符串的開始和結尾都有垃圾字符。我的問題是,我不知道哪些字符是垃圾,直到它們出現在每個條目中。刪除字符串中的重複字符r

即: 向量包含:

nRsp; A810SS-Q1D-01 「

nRsp; C5A19A60WESD04」

nRsp; 461961「

在這種情況下,nRsp

;是垃圾在開始和「是結束垃圾。垃圾值應該在相對於矢量的開始和結束的相同位置出現,但我需要一些方法來首先找到它們,然後刪除它們。

謝謝!

+0

開始時它總是'nRsp;'? – hwnd

+0

不,每次程序運行時它都會是一組不同的字符 –

回答

0

如果你想找到你的向量的所有元素都在開始和刪除它們之前到底有共同的特點,你可以這樣做:

library(purrr) 
## Replicating the data 
v = c("nRsp ;A810SS-Q1D-01 \"","nRsp ;C5A19A60WESD04 \"","nRsp ;461961 \"") 
## Split each string into a vector 
l = strsplit(v,"") 
## Find the common parts at the start and end of all elements in the list 
start = 1 
while(every(l,function(x) sum(x[1:start]==l[[1]][1:start])==start)){start=start+1} 
end = 1 
while(every(l,function(x) sum(rev(x)[1:end]==rev(l[[1]])[1:end])==end)){end=end+1} 
## Remove the common 'garbage' from each element of the list 
v2 = sapply(l,function(x) paste(x[start:(length(x)-end+1)],collapse="")) 

這將返回:

[1] "A810SS-Q1D-01" "C5A19A60WESD04" "461961"