Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

R: How to save lists into csv?

Tags:

r

csv

twitter-r

So im actually working on twitteR and i need a way to store my tweets into a csv file and pull it out when i need it . This is due to the idea i want to compile the tweets i collect and then apply them to my algorithms to do the calculations later. So , i thought of trying

            write.csv(tweets, file = "newfile", row.names = TRUE, sep = ',', col.names = TRUE)

which only works if create a data frame tho :/ . The tweets that i collect looks like this

 [[1]]
 [1] "anonymous: boring!"

 [[2]]
 [1] "anonymous: random message !"

.... ......

Any ideas?

Edited: my str(tweets) this is just 3 tweets i just pulled out

List of 3
 $ :Reference class 'status' [package "twitteR"] with 17 fields
  ..$ text         : chr "damn so many thing to settle @@"
  ..$ favorited    : logi FALSE
  ..$ favoriteCount: num 0
  ..$ replyToSN    : chr(0) 
  ..$ created      : POSIXct[1:1], format: "2013-10-11 14:15:59"
  ..$ truncated    : logi FALSE
  ..$ replyToSID   : chr(0) 
  ..$ id           : chr "388669309028798464"
  ..$ replyToUID   : chr(0) 
  ..$ statusSource : chr "web"
  ..$ screenName   : chr "ThisIsNapmi"
  ..$ retweetCount : num 0
  ..$ isRetweet    : logi FALSE
  ..$ retweeted    : logi FALSE
  ..$ longitude    : chr(0) 
  ..$ latitude     : chr(0) 
  ..$ urls         :'data.frame':   0 obs. of  4 variables:
  .. ..$ url         : chr(0) 
  .. ..$ expanded_url: chr(0) 
  .. ..$ dispaly_url : chr(0) 
  .. ..$ indices     : num(0) 
  ..and 50 methods, of which 38 are possibly relevant:
  ..  getCreated, getFavoriteCount, getFavorited, getId, getIsRetweet, getLatitude,
  ..  getLongitude, getReplyToSID, getReplyToSN, getReplyToUID, getRetweetCount, getRetweeted,
  ..  getRetweets, getScreenName, getStatusSource, getText, getTruncated, getUrls, initialize,
  ..  setCreated, setFavoriteCount, setFavorited, setId, setIsRetweet, setLatitude,
  ..  setLongitude, setReplyToSID, setReplyToSN, setReplyToUID, setRetweetCount, setRetweeted,
  ..  setScreenName, setStatusSource, setText, setTruncated, setUrls, toDataFrame,
  ..  toDataFrame#twitterObj
 $ :Reference class 'status' [package "twitteR"] with 17 fields
  ..$ text         : chr "@Neverush @asmafab http://t.co/TOakKW4kyc"
  ..$ favorited    : logi FALSE
  ..$ favoriteCount: num 0
  ..$ replyToSN    : chr "Neverush"
  ..$ created      : POSIXct[1:1], format: "2013-10-11 12:55:04"
  ..$ truncated    : logi FALSE
  ..$ replyToSID   : chr "388647414808051712"
  ..$ id           : chr "388648948111392770"
  ..$ replyToUID   : chr "44332730"
  ..$ statusSource : chr "web"
  ..$ screenName   : chr "ThisIsNapmi"
  ..$ retweetCount : num 0
  ..$ isRetweet    : logi FALSE
  ..$ retweeted    : logi FALSE
  ..$ longitude    : chr(0) 
  ..$ latitude     : chr(0) 
  ..$ urls         :'data.frame':   1 obs. of  5 variables:
  .. ..$ url         : chr "http://t.co/TOakKW4kyc"
  .. ..$ expanded_url: chr "http://www.youtube.com/watch?v=2mjvfnUAfyo"
  .. ..$ display_url : chr "youtube.com/watch?v=2mjvfn…""| __truncated__
  .. ..$ start_index : num 19
  .. ..$ stop_index  : num 41
  ..and 50 methods, of which 38 are possibly relevant:
  ..  getCreated, getFavoriteCount, getFavorited, getId, getIsRetweet, getLatitude,
  ..  getLongitude, getReplyToSID, getReplyToSN, getReplyToUID, getRetweetCount, getRetweeted,
  ..  getRetweets, getScreenName, getStatusSource, getText, getTruncated, getUrls, initialize,
  ..  setCreated, setFavoriteCount, setFavorited, setId, setIsRetweet, setLatitude,
  ..  setLongitude, setReplyToSID, setReplyToSN, setReplyToUID, setRetweetCount, setRetweeted,
  ..  setScreenName, setStatusSource, setText, setTruncated, setUrls, toDataFrame,
  ..  toDataFrame#twitterObj
 $ :Reference class 'status' [package "twitteR"] with 17 fields
  ..$ text         : chr "@Neverush @asmafab nasi lemak bumbung ? ahahahaha"
  ..$ favorited    : logi FALSE
  ..$ favoriteCount: num 0
  ..$ replyToSN    : chr "Neverush"
  ..$ created      : POSIXct[1:1], format: "2013-10-11 12:34:39"
  ..$ truncated    : logi FALSE
  ..$ replyToSID   : chr "388643321108631552"
  ..$ id           : chr "388643810613264384"
  ..$ replyToUID   : chr "44332730"
  ..$ statusSource : chr "web"
  ..$ screenName   : chr "ThisIsNapmi"
  ..$ retweetCount : num 0
  ..$ isRetweet    : logi FALSE
  ..$ retweeted    : logi FALSE
  ..$ longitude    : chr(0) 
  ..$ latitude     : chr(0) 
  ..$ urls         :'data.frame':   0 obs. of  4 variables:
  .. ..$ url         : chr(0) 
  .. ..$ expanded_url: chr(0) 
  .. ..$ dispaly_url : chr(0) 
  .. ..$ indices     : num(0) 
  ..and 50 methods, of which 38 are possibly relevant:
  ..  getCreated, getFavoriteCount, getFavorited, getId, getIsRetweet, getLatitude,
  ..  getLongitude, getReplyToSID, getReplyToSN, getReplyToUID, getRetweetCount, getRetweeted,
  ..  getRetweets, getScreenName, getStatusSource, getText, getTruncated, getUrls, initialize,
  ..  setCreated, setFavoriteCount, setFavorited, setId, setIsRetweet, setLatitude,
  ..  setLongitude, setReplyToSID, setReplyToSN, setReplyToUID, setRetweetCount, setRetweeted,
  ..  setScreenName, setStatusSource, setText, setTruncated, setUrls, toDataFrame,
  ..  toDataFrame#twitterObj
like image 394
Napmi Avatar asked Oct 12 '13 05:10

Napmi


People also ask

Can I save a list as a csv in R?

You can use the sink() function to quickly export a list to a CSV file or text file in R.

How do I save a list in R?

You could simply use save(...) or save. image(...) to save your list object as rdata file. Then, you can download this file from your server and load it into the current R work space of your computer (function load(...)).


1 Answers

Not tested, but from what I've read online, it seems like the following should work:

  1. Convert the list to a data.frame

    library(plyr) 
    tweets.df = ldply(tweets, function(t) t$toDataFrame())
    
  2. Use write.csv as before, but just on the tweets.df object instead of the tweets object.

    write.csv(tweets.df, file = "newfile.csv")
    

Sources: Here and here. See also: ?"status-class".

like image 168
A5C1D2H2I1M1N2O1R2T1 Avatar answered Oct 20 '22 03:10

A5C1D2H2I1M1N2O1R2T1