【问题标题】:r - remove last but one character from every fieldr - 从每个字段中删除最后一个字符
【发布时间】:2016-04-22 14:39:19
【问题描述】:

R 中的 substr() 函数可以按位置隔离任何字符,例如

substr(df$10,2,3)

或者通过使用nchar(),可以从字段的末尾向后工作,以将字符隔离在最后一个位置,使用:

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

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

【问题讨论】:

  • 你能解释一下“最后一个”是什么意思吗?您是否要删除除倒数第二个字符之外的所有内容?
  • 你能显示预期的输出吗?

标签: regex r string gsub substr


【解决方案1】:

您可以使用带有sub 的正则表达式:

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

它的作用是匹配字符串中的最后两个字符,并将它们替换为仅在捕获组中捕获的最后一个字符。

【讨论】:

  • 还有一个更快一点的:sub("^(.*).(.)$", "\\1\\2", x)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多