2017-08-08 28 views
-1

我有一個R中的字符表,我想刪除第一個和最後一個 個字符。我嘗試使用子功能,但它只適用於X1而不是 X2。基本上,我想從這個R中的正則表達式 - 動態刪除第一個和最後一個字符

X1  |  X2 
-----------|-------------- 
N40ø47.30'| W111ø58.67' 
W32ø50.83'| E96ø51.11' 

去我想獲得這樣的

X1   X2 
----------|------------ 
40ø47.30 | 111ø58.67 
32ø50.83 | 96ø51.11 
+0

您是如何使用'sub'的? –

+0

DF $ X1 < - sub('。','',DF $ X1) – Riff

+1

你可以用X2做類似的事情。請參閱http://ideone.com/WzKjjA –

回答

2

的第一個字符是^.,最後是.$, 可以使用gsub去除機器人同時H:

DF$X1 <- gsub('^.|.$', '', DF$X1) 

另一種選擇,沒有正則表達式是提取字符串的中間部分:

substr(DF$X1, 2, nchar(as.character(DF$X1)) - 1) 

但是請注意,這些解決方案僅適用於具有至少值工作兩個字符。有可能使gsub解決方案適用於單字符值:

gsub('^.(.*).$', '\\1', DF$X1) # thanks for @wiktor-stribiżew 
+0

實際上,這個''^。|。$''將刪除1和2個字符的字符串。不確定OP在這裏需要什麼。 –

+0

@WiktorStribiżew好點,增加了關於該限制的說明 – janos

+0

是的,但根據OP反饋,'gsub('^。(。*)。$','\\ 1',DF $ X1)'不起作用。 –

1

這不是你問什麼,但如果你只是想刪除字符N,E, S,W和'你可以運行:

gsub("N|E|S|W|'","",DF) 
相關問題