2016-11-30 55 views
2

我正在清理一些文本。我有一個emojis列表,我不想從文本中刪除。我只想在這些表情符號之前放一個空格。在emojis之前放置一個空格

emojis = as.character(outer(c(":", ";", ":-", ";-","="),c(")", "(", "]", "[", "D", "o", "O", "P", "p","8"),FUN = paste,sep="")) 

如果我有一條推文說。

Tweet = "I am so happy:)" 

我想這是

Tweet = "I am so happy :)" 

運行的代碼之後。

這是一個非常簡單的想法,我一直沒能找到任何代碼來做到這一點。

完全是他們之前需要的空間表情符號列表:

":)" ";)" ":-)" ";-)" "=)" ":(" ";(" ":-(" ";-(" "=(" ":]" ";]" ":-]" ";-]" "=]" ":[" ";[" ":-[" ";-[" "=[" ":D" ";D" ":-D" ";-D" "=D" ":o" ";o" ":-o" ";-o" "=o" ":O" ";O" ":-O" ";-O" "=O" ":P" ";P" ":-P" ";-P" "=P" ":p" ";p" ":-p" ";-p" "=p" ":8" ";8" ":-8" ";-8" "=8" 
+0

你怎麼得到推文'Tweet =「我很開心:)」'? –

+0

@RonakShah對不起,也許還不清楚,推文只會說「我很開心:)」文字剛剛被命名爲Tweet。 – Kristofersen

+0

@ Hack-R - 這不是一個可重複的例子嗎? emojis列表在R代碼中定義,當前數據的一個示例在R代碼中給出,並提供預期的輸出。如果這裏只有所有問題都是一樣的。 – thelatemail

回答

4

正則表達式可以提供幫助。

emojis = as.character(outer(c(":", ";", ":-", ";-","="),c("\\)", "\\(", "\\]", "\\[", "D", "o", "O", "P", "p","8"),FUN = paste,sep="")) 
pat <- paste0("(\\w+)(", paste(emojis, collapse="|"), ")") 
Tweet = "I am so happy:)" 
sub(pat, "\\1 \\2", Tweet) 
#[1] "I am so happy :)" 
+1

感謝您的回覆。這幾乎是我想要的。 emojis的列表中也有emojis;和=雖然,並且此代碼不會'爲此工作。我如何將它納入子? – Kristofersen

+0

已編輯。還有一張紙條,我在需要它們的表情符號上加了反斜槓。 –

+0

謝謝,這是完美的。 – Kristofersen

相關問題