Tweets over a specific time span (TwitteR)

非 Y 不嫁゛ 提交于 2021-02-05 06:12:26

问题


Is there any way to fetch tweets over a specific time span (say, between December and January) with twitteR rather than simply the past N tweets (as in with tweets <- UserTimeline(user, n = 1000) ?

Or is that not possible using the TwitteR library? (meaning that you have to use something like Excel to subset a large number of tweets by date).


回答1:


In the package you're using, the searchTwitter function takes the arguments since and until, defined in the documentation as follows:

since If not NULL, restricts tweets to those since the given date. Date is to be formatted as YYYY-MM-DD

until If not NULL, restricts tweets to those up until the given date. Date is to be formatted as YYYY-MM-DD

Is that what you're after? Or if you want to stick with the userTimeline function, you can subset the date range you want by operating on the created field of the status object that you get (so no need to use Excel).

EDIT Here's how you might subset on the created field if you're using userTimeline:

library(twitteR)
# get last 100 tweets from the NSF
tweets <- userTimeline('NSF', 100)
# inspect structure of first item in the status object (ie. list of results)
str(tweets[1])
List of 1
 $ :Reference class 'status' [package "twitteR"] with 10 fields
  ..$ text        : chr "From the field: Avoiding a Cartography Catastrophe:  Study recommends new tools to improve global mapping of inf... http://t.co"| __truncated__
  ..$ favorited   : logi FALSE
  ..$ replyToSN   : chr(0) 
  ..$ created     : POSIXct[1:1], format: "2013-02-05 01:43:45"
  ..$ truncated   : logi FALSE
  ..$ replyToSID  : chr(0) 
  ..$ id          : chr "298607815617036288"
  ..$ replyToUID  : chr(0) 
  ..$ statusSource: chr "<a href=\"http://twitterfeed.com\" rel=\"nofollow\">twitterfeed</a>"
  ..$ screenName  : chr "NSF"
  ..and 34 methods, of which 23 are possibly relevant:
  ..  getCreated, getFavorited, getId, getReplyToSID, getReplyToSN,
  ..  getReplyToUID, getScreenName, getStatusSource, getText,
  ..  getTruncated, initialize, setCreated, setFavorited, setId,
  ..  setReplyToSID, setReplyToSN, setReplyToUID, setScreenName,
      ..  setStatusSource, setText, setTruncated, toDataFrame, usingMethods


# convert status object to data frame for easier manipulation
tweetsdf <- twListToDF(tweets)


 # subset by `created` field, eg get all tweets between 2 Feb and 5 Feb  
    subset(tweetsdf, created >= as.POSIXct('2013-02-02 00:00:00') & created <= as.POSIXct('2013-02-05 00:00:00'))

And here's the dataframe that results from that subset operation:

text
1   From the field: Avoiding a Cartography Catastrophe:  Study recommends new tools to improve global mapping of inf... http://t.co/F6IJ05Sb
2                  Video: Research Vessel Sikuliaq launched... and now being prepared for her first Arctic run in 2014, http://t.co/D7GlRnlm
3                                                                                        Who's watching the power grid? http://t.co/oYsgBl63
4 Ice Melt &amp; the Ice Age... research story on #AAAS #Science Update Daily, featured show @Science360 Radio, http://t.co/XRXSdYL1 #Arctic
5                                                                                             Taking LIGO to the people http://t.co/R2KHNQTB
6                            Pubs: NSF Current - January-February 2013: Available Formats: JSP: http://t.co/2NhEEj6Q... http://t.co/ZSVABpXm
7   Upcoming Due Dates: Interdisciplinary Research in Hazards and Disasters (Hazards SEES): Full Proposal Deadline D... http://t.co/IG3naAFs
8                                                     When children learn to walk, their language improves dramatically http://t.co/FGYXSKu2
  favorited replyToSN             created truncated replyToSID
1     FALSE        NA 2013-02-05 01:43:45     FALSE         NA
2     FALSE        NA 2013-02-04 19:30:40     FALSE         NA
3     FALSE        NA 2013-02-04 18:01:33     FALSE         NA
4     FALSE        NA 2013-02-04 13:55:46     FALSE         NA
5     FALSE        NA 2013-02-04 13:01:51     FALSE         NA
6     FALSE        NA 2013-02-02 17:19:30     FALSE         NA
7     FALSE        NA 2013-02-02 14:25:15     FALSE         NA
8     FALSE        NA 2013-02-02 14:02:11     FALSE         NA
                  id replyToUID
1 298607815617036288         NA
2 298513923307630592         NA
3 298491499958644736         NA
4 298429645580288000         NA
5 298416076012785666         NA
6 297756138433290240         NA
7 297712287521841156         NA
8 297706485608218624         NA
                                                     statusSource
1 <a href="http://twitterfeed.com" rel="nofollow">twitterfeed</a>
2 <a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a>
3 <a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a>
4 <a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a>
5 <a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a>
6 <a href="http://twitterfeed.com" rel="nofollow">twitterfeed</a>
7 <a href="http://twitterfeed.com" rel="nofollow">twitterfeed</a>
8 <a href="http://www.hootsuite.com" rel="nofollow">HootSuite</a>
  screenName
1        NSF
2        NSF
3        NSF
4        NSF
5        NSF
6        NSF
7        NSF
8        NSF


来源:https://stackoverflow.com/questions/14680036/tweets-over-a-specific-time-span-twitter

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!