从R中的twitter状态中提取用户

Eli*_*lin 3 twitter r

我试图找出特定用户频繁发送/提及另一个用户的频率.通过twitteR-package,我可以检索给定用户的推文,但是如果推文提到几个用户,则只有第一个在replyToUID字段中提到.因此,我的数据框的第一列包含推文,例如:

"@ user1 @ user2你读过@ user3写的东西吗?"

我想将用户名提取到这样的列表中

  • USER1
  • 用户2
  • 用户3

来自下一条推文的用户将在下面添加.如果有人知道怎么做(提取,我可以处理循环)它或指向我正确的方向它将是非常了解.

可选地,对于真正有用的,如果您知道如何复合最终的列表(在处理了n个推文之后),而不是

  • USER1
  • 用户2
  • 用户3
  • USER1
  • 用户3
  • USER4

列表(或表格)读取如下(计算某个用户被提及的频率)

  • user1,2
  • user2,1
  • user3,2
  • user4,1

它会更加苛刻.

谢谢你,伊莱亚斯

And*_*rie 5

我不确定有效的Twitter用户名的规则是什么,但假设只允许使用字母数字字符,您可以使用简单的正则表达式:

x <- "@user1 @user2 have you read what @user3 wrote?"

users <- function(x){
  xx <- strsplit(x, " ")
  lapply(xx, function(xx)xx[grepl("@[[:alnum:]]", xx)])
}

users(x)
[[1]]
[1] "@user1" "@user2" "@user3"
Run Code Online (Sandbox Code Playgroud)

此外,此解决方案还假定所有单词都用空格分割,即它不适用于后跟标点符号的用户名.你必须扩展这个答案来应对这种情况.