简体   繁体   English

从 R 中的推文中提取引用 Twitter 的用户名

[英]Extracting referenced Twitter usernames from Tweet in R

I am currently trying to get a list of all referenced Twitter profiles in a database of Tweets in R. I already segmented each Tweet into a list of words (as string) and now I want to look up each value, that starts with "@" and save it (or the list if there is multiple references) into a new column of the database.我目前正在尝试在 R 的推文数据库中获取所有引用的 Twitter 配置文件的列表。我已经将每个推文分割成一个单词列表(作为字符串),现在我想查找以“@”开头的每个值" 并将其(或列表,如果有多个引用)保存到数据库的新列中。

Data Sample:数据样本:

@medieninsider Was meinen Sie, woher der zitierte Ausschnitt stammt? 😉 Die Angabe der Quelle habe ich mir gespart, sie nennt sich in 6 Sätzen ja selbst 3 Mal. 😉 P.S.: 17 € pro Monat für eine Website und paar SPAM-Mails - da gibt es für 18,36 € aber DEUTLICH mehr und vielfältigeres beim ÖRR.

With the function strsplit() I was able to generate the following list out of this string:使用 function strsplit()我能够从这个字符串中生成以下列表:

[[1]]
 [1] "@medieninsider" "Was"            "meinen"         "Sie,"          
 [5] "woher"          "der"            "zitierte"       "Ausschnitt"    
 [9] "stammt?"        "😉"             "Die"            "Angabe"        
[13] "der"            "Quelle"         "habe"           "ich"           
[17] "mir"            "gespart,"       "sie"            "nennt"         
[21] "sich"           "in"             "6"              "Sätzen"        
[25] "ja"             "selbst"         "3"              "Mal."          
[29] "😉"             "P.S.:"          "17"             "€"             
[33] "pro"            "Monat"          "für"            "eine"          
[37] "Website"        "und"            "paar"           "SPAM-Mails"    
[41] "-"              "da"             "gibt"           "es"            
[45] "für"            "18,36"          "€"              "aber"          
[49] "DEUTLICH"       "mehr"           "und"            "vielfältigeres"
[53] "beim"           "ÖRR." 

How can I extract the Twitter profile (with the "@" as prefix) as a new variable?如何将 Twitter 配置文件(以“@”作为前缀)提取为新变量?

Thanks in advance!提前致谢!

You can use sub你可以使用sub

string <- "@medieninsider Was meinen Sie, woher der zitierte Ausschnitt stammt? 😉 Die Angabe der Quelle habe ich mir gespart, sie nennt sich in 6 Sätzen ja selbst 3 Mal. 😉 P.S.: 17 € pro Monat für eine Website und paar SPAM-Mails - da gibt es für 18,36 € aber DEUTLICH mehr und vielfältigeres beim ÖRR."

sub("(@\\w+)\\s+.*", "\\1", string)
[1] "@medieninsider

Another option is using str_extract_all if you have a vector consisting of several tweets另一种选择是使用str_extract_all如果你有一个由几条推文组成的向量

library(stringr)
str_extract_all(string, "(@\\w+)")
[[1]]
[1] "@medieninsider"

Use str_detect from stringr使用 stringr 中的 str_detect

consider that the list generated is vec, then use vec认为生成的列表是vec,则使用vec

index <- which(str_detect(vec,'@'))
vec[index]

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM