如果 tweet/row 包含任何非英语单词,则将其删除

Removing a tweet/row if it contains any non-english word

如果数据框中包含任何非英语单词,我想删除整条推文或一行。 我的数据框看起来像

     text
1  | morning why didnt i go to sleep earlier oh well im seEING DNP TODAY!!  
     JIP UHH <f0><U+009F><U+0092><U+0096><f0><U+009F><U+0092><U+0096>

2  | @natefrancis00 @SimplyAJ10 <f0><U+009F><U+0098><U+0086><f0><U+009F 
     <U+0086> if only Alan had a Twitter hahaha

3  | @pchirsch23 @The_0nceler @livetennis Whoa whoa let’s not take this too 
     far now
4  | @pchirsch23 @The_0nceler @livetennis Well Pat that’s just not true
5  | One word #Shame on you! #Ji allowing looters to become president

预期的数据帧应该是这样的:

 text
3  | @pchirsch23 @The_0nceler @livetennis Whoa whoa let’s not take this too 
     far now
4  | @pchirsch23 @The_0nceler @livetennis Well Pat that’s just not true
5  | One word #Shame on you! #Ji allowing looters to become president.

您想保留 字母数字 字符以及一些标点符号,例如 @!
如果您的专栏主要包含 <unicode>,那么应该这样做:

对于具有 text 列的数据框 df,使用 grep:

new_str <- grep(df_str$text, pattern = "<*>", value= TRUE , invert = TRUE )
new_str[new_str != ""]

把它放回原来的专栏text。您可以只使用您需要的索引并将其他索引放入 NA:

idx <-  grep(df$text, pattern = "<*>", invert = TRUE )
df$text[-idx] <- NA 

要清理推文,您可以使用gsub功能。参考这个 post