2016-11-30 53 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

相关问题