Retweet count for specific tweet

2019-07-16 11:35发布

I'm using "TwitteR" package and R program to retrieve tweets information. Even though Twitter API provides

retweet_count’ function(https://dev.twitter.com/docs/faq#6899)

I couldn't figure out how to utilize it within R. ( Maybe using 'getURL' function in 'RCurl' package?)

Basically, I'm looking for ways to

  1. the number of times specific tweet has been retweeted

  2. Using Streaming API in R for getting real time information such as

    a. new followers join those users, and

    b. when they post tweets or retweets, and

    c. when the tweets they have posted are re-tweeted by someone else

I would appreciate if anyone could help me out finding leads to get any of these information.

标签: r twitter
1条回答
爷、活的狠高调
2楼-- · 2019-07-16 12:16

I can't help with the streaming API question, but how about this for working with retweets, based on this helpful tutorial. You could probably work with it to focus on specific tweets instead of numbers of retweets per user. Some of the posts here may be more useful.

# get package with functions for interacting with Twitter.com
require(twitteR) 
# get 1500 tweets with #BBC tag, note that 1500 is the max, and it's subject to mysterious filtering and other restrictions by Twitter
s <- searchTwitter('#BBC', n=1500) 
#
# convert to data frame
df <- do.call("rbind", lapply(s, as.data.frame))
#
# Clean text of tweets 
df$text <- sapply(df$text,function(row) iconv(row,to='UTF-8')) #remove odd characters
trim <- function (x) sub('@','',x) # remove @ symbol from user names 
#
# Extract retweets
library(stringr)
df$to <- sapply(df$to,function(name) trim(name)) # pull out who msg is to
df$rt <- sapply(df$text,function(tweet) trim(str_match(tweet,"^RT (@[[:alnum:]_]*)")[2]))      
#
# basic analysis and visualisation of RT'd messages
sum(!is.na(df$rt))                # see how many tweets are retweets
sum(!is.na(df$rt))/length(df$rt)  # the ratio of retweets to tweets
countRT <- table(df$rt)
countRT <- sort(countRT)
countRT.subset <- subset(countRT,countRT >2) # subset those RTd at least twice
barplot(countRT.subset,las=2,cex.names = 0.75) # plot them
#
#  basic social network analysis using RT 
# (not requested  by OP, but may be of interest...)
rt <- data.frame(user=df$screenName, rt=df$rt) # tweeter-retweeted pairs
rt.u <- na.omit(unique(rt)) # omit pairs with NA, get only unique pairs
#
# begin sna
library(igraph)
g <- graph.data.frame(rt.u, directed = T)
ecount(g) # edges (connections)
vcount(g) # vertices (nodes)
diameter(g) # network diameter
farthest.nodes(g) # show the farthest nodes
查看更多
登录 后发表回答