2016-04-22 2097 views
0

R中的substr()函数可以按位置隔离任何字符,例如,r - 删除每个字段的最后一个字符

substr(df$10,2,3) 

或使用nchar(),可以从外地结束后向工作在某个位置的字符隔离如倒数第二个使用:

substr(df$10,nchar(df$10)-2,nchar(df$10)-1) 

但是我想知道如何简单地删除数据帧中列的每个字段的last but one character。我很难做到这一点。任何帮助将是伟大的!

+1

你能澄清你的意思是“最后一个”吗?你是否尝试删除除倒数第二个字符之外的所有内容? – nrussell

+1

你能展示预期的产出吗? – Sotos

回答

2

您可以使用正则表达式与sub

x <- c("banana","republic") 
sub(".(.)$","\\1",x) 
[1] "banaa" "republc" 

这样做是最后两个字符串中的字符相匹配,并与只有最后一个,这是在捕获组捕获替换它们。

+1

快一点:'sub(“^(。*)。(。)$”,“\\ 1 \\ 2”,x)' –

+0

完美 - 谢谢! – brucezepplin

相关问题