我正在使用twitteR库。我的任务是制作一个图形,其中顶点是用户名,如果两个用户来自同一个位置,它们之间会有一条边。这是我用来收集用户的代码
search_result <- searchTwitter("#my_hashtag", 500)
tags <- twListToDF(search_result)
users <- tags$screenName
df <- twListToDF(lookupUsers(users))
我是R的新手,所以我认为这个任务非常简单,但我缺乏生成用户对的语法,这将代表图的边缘。
我们将不胜感激! :)
谢谢。
经过一段时间的思考,我认为这是最简单的方法。我从最后一点开始按照你的例子。下一步是仅保留用户的姓名和位置。我们将使用'dplyr'创建必要的edgelist矩阵,将loops
设置为FALSE
以避免图中的循环,我也设置directed = FALSE
,相反没有意义。完成后,任何可用的包都可用于创建图:
library(tidyverse)
library("statnet")
p <- df[,c("name", "location")]
inner_join(p,p, by="location") %>%
select(name.x, name.y) -> gr
n <- network(gr, matrix.type="edgelist", loops = F, directed = F)
gplot(n,usearrows = F)
除了我的用户之外,我只使用了几个用户来简化网络。两个连接,另一个不连接:
HTH!