2013-06-19 50 views
2

我有一個像下面消除一切

vec <- c("abc\edw\www", "nmn\ggg", "rer\qqq\fdf"......) 

我想盡快以後在遇到第一個斜槓去除一切,像下面

newvec <- c("abc","nmn","rer") 

謝矢量您。

我原來的載體是如下(僅頭部)

[1] "peoria ave\nste \npeoria"      [2] "wood dr\nphoenix"         
"central ave\nphoenix"        
[4] "southern ave\nphoenix"       [5] "happy valley rd\nste 
\nglendaleaz "    "the americana at brand\n americana way\nglendale" 

這裏的問題是我原來的CSV文件中不包含反斜槓,但是當我讀它反斜線出現。原始csv文件是如下

[1] "peoria ave    [2] "wood dr 
    nste       nphoenix"  
    npeoria" 

正如你所看到的,它們實際上是由「ENTER」分離的,但是當我使用read.csv R中閱讀(),他們之間用反斜槓代替。

+1

您應該編輯您的字符串,以顯示它是如何實際'r'代表(即逃出反斜槓''\\ '') –

+0

您提供的代碼不能在R.中進行復制,您還要談談斜槓並提供反斜槓?如果你想添加反斜槓你應該加倍。像'vec < - c(「abc \\ edw \\ www」)' –

+0

@SanderVanderZeeuw我已經提供了更多信息,請仔細閱讀。我認爲反斜槓實際上並不存在。它們在我讀到R時出現。 –

回答

4

另一種解決方案:

sub("\\\\.*", "", x) 
+0

+1簡單而優雅,正是需要什麼。尼斯。 –

1
vec <- c("abc\\edw\\www", "nmn\\ggg", "rer\\qqq\\fdf") 
sub("([^\\\\])\\\\.*","\\1", vec) 
[1] "abc" "nmn" "rer" 
0

strssplit(vec, "\\\\")應該做這項工作。

選擇的第一要素[[1]][1]第二[[1]][2]