从R中的字符串中删除表情符号
我有一个tweet列表,其中许多包含需要删除的表情符号。在R中,最有效的方法是什么 我尝试了下面的方法,该方法应该用空格替换所有以“\”开头的单词,但我收到了这个错误从R中的字符串中删除表情符号,r,regex,twitter,unicode,substitution,R,Regex,Twitter,Unicode,Substitution,我有一个tweet列表,其中许多包含需要删除的表情符号。在R中,最有效的方法是什么 我尝试了下面的方法,该方法应该用空格替换所有以“\”开头的单词,但我收到了这个错误 some_tweets <- gsub("\\\w+ *", "", some_tweets) Error: '\w' is an unrecognized escape in character string starting ""\\\w" 查看,它对正则表达式中的Unicode进行了全面的解释。这里重要的一点是,您可
some_tweets <- gsub("\\\w+ *", "", some_tweets)
Error: '\w' is an unrecognized escape in character string starting ""\\\w"
查看,它对正则表达式中的Unicode进行了全面的解释。这里重要的一点是,您可以将Unicode字符与\p{xx}
匹配,其中xx
是它们所在的任何类别的名称(例如,字母为L
,标记为M
)。在这里,您的表情符号似乎位于So
(缩写为Other_Symbol
)和Cn
(缩写为Unassigned
)类中,因此我们可以将它们细分为:
gsub('\\p{So}|\\p{Cn}', '', some_tweets, perl = TRUE)
## [1] "ஆமா நான் பாக்கவே இல்லை "
## [2] "எனக்கு அனுப்பலாமே "
## [3] "அவர் ஏன்டா ப்ளாக் பண்ணார் "
## [4] "ஆமா"
## [5] "RT : சும்மார்றா சுன்னி.. ~ ஆதவன்"
## [6] "கைலியை எல்லாம் லூஸ் பண்ணிகிட்டு உக்காந்து இருக்கேன் அடுத்து போடுங்கயா "
注意,您需要设置
perl=TRUE
set,因为在R的默认POSIX 1003.2正则表达式中没有启用此符号;请参见?base::regex
和?grep
您只是在使用gsub
,而没有使用regex。您需要使用正则表达式。\\\\w+*
有效吗?我尝试了\\\\w+*
,但无效。输出应该是什么样子?它应该保留所有泰米尔字符,而所有表情符号(以“\U”开头)都应该删除。谢谢alistaire——我也遇到了同样的问题,您的解决方案工作正常。
gsub('\\p{So}|\\p{Cn}', '', some_tweets, perl = TRUE)
## [1] "ஆமா நான் பாக்கவே இல்லை "
## [2] "எனக்கு அனுப்பலாமே "
## [3] "அவர் ஏன்டா ப்ளாக் பண்ணார் "
## [4] "ஆமா"
## [5] "RT : சும்மார்றா சுன்னி.. ~ ஆதவன்"
## [6] "கைலியை எல்லாம் லூஸ் பண்ணிகிட்டு உக்காந்து இருக்கேன் அடுத்து போடுங்கயா "