2017-05-31 134 views
0

我有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」)' –

回答

2

您可以使用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

相關問題