我想在R中做一個數據幀字符串替換。我需要找到所有以'@'開頭的單詞(沒有空格,例如@word)並且改變'@ '爲'!' (例如從@word到!字)。同時,它會保留「@」的其他實例(例如@或@@或@ [@])。例如,這是我原來的數據框(改:@def,@jkl,@stu):在R中用相同的單詞替換沒有初始@的相同單詞
> df = data.frame(number = 1:4, text = c('abc @def ghi', '@jkl @ mno', '@[@] pqr @stu', 'vwx @@@ yz'))
> df
number text
1 1 abc @def ghi
2 2 @jkl @ mno
3 3 @[@] pqr @stu
4 4 vwx @@@ yz
而這正是我需要它看起來像:
> df_result = data.frame(number = 1:4, text = c('abc !def ghi', '!jkl @ mno', '@[@] pqr !stu', 'vwx @@@ yz'))
> df_result
number text
1 1 abc !def ghi
2 2 !jkl @ mno
3 3 @[@] pqr !stu
4 4 vwx @@@ yz
我曾嘗試與
> gsub('@.+[a-z] ', '!', df$text)
[1] "abc !ghi" "[email protected] mno" "[email protected]" "vwx @@@ yz"
但結果不是理想的。任何幫助深表感謝。
謝謝。
嗨Rich Scriven,非常感謝你的解決方案和背後的邏輯非常詳細的解釋。它完美的作品。祝你有美好的一天。 – user3550647