插入在特定位置R中字符串的字符

问题描述:

我有A R串这样插入在特定位置R中字符串的字符

a <- "(hi I am (learning R))" 

我想在上面的字符串添加字符“x”,并使它像

"(hi I am (learning R)x)" 

我怎样才能有效地使用R?

编辑:添加1更多信息: 假设模式可以启动字符串,但到底最后2架将保持相同的所有时间而改变,我必须插入X它们之间所有的时间。

+4

您打算为多个字符串执行此操作吗?他们的模式是什么?向一个示例字符串添加'x'虽然不重要,但它可能不适用于您的实际数据。 – Phil

+0

sub(“R)”,“R)x”,a) – www

+0

菲尔说的话,然后是ycw的评论或者''粘贴''''substr'或者'sprintf(“(嗨,我是(学习R)%s)”,“x”)' –

您可以使用sub,捕获你要在其后插入,然后使用反向引用添加x独特的模式:

sub("(R\\))", "\\1x", a) 
# [1] "(hi I am (learning R)x)" 

更新上在的结尾插入两个支架之间的字符字符串,最简单的将匹配一个模式,并将其替换为您所需的模式:

sub("\\) \\)$", "\\)x \\)", a) 
# [1] "(hi I am (learning R)x)" 
+0

添加1个更多信息:模式可以改变为开始字符串,但最后2个括号到最后将始终保持不变,我必须一直在它们之间插入x。 – HiveRLearner

+0

感谢您的回复,但详细补充说我不知道​​早期的字符串模式。我只知道最后2个支架模式。有没有什么办法可以使用这个信息,我必须在第二个最后的位置插入x(在第二个括号后) – HiveRLearner

+0

我认为第二个选项会做,它有什么问题? – Psidom