R中的正则表达式 - 动态删除第一个和最后一个字符

时间:2017-08-08 21:13:20

标签: r regex character-encoding

我在R中有一个字符表,我想删除第一个和最后一个      字符。我尝试使用子功能,但它只适用于X1而不是      X2。基本上我想从这个

   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

2 个答案:

答案 0 :(得分:2)

第一个字符是^.,最后一个字符是.$, 您可以使用gsub同时删除两者:

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

答案 1 :(得分:1)

IT不是你问的,但如果你只想删除字符N,E,S,W和&#39;你可以跑:

gsub("N|E|S|W|'","",DF)