R: Как сохранить списки в csv?
Итак, я действительно работаю над twitteR, и мне нужен способ сохранить мои твиты в файл csv и вытащить его, когда мне это нужно. Это связано с идеей, которую я хочу скомпилировать твиты, которые я собираю, а затем применить их к моим алгоритмам для выполнения вычислений позже.
Итак, я подумал о том, чтобы попробовать
write.csv(tweets, file = "newfile", row.names = TRUE, sep = ',', col.names = TRUE)
который работает только при создании фрейма данных tho:/.
Твиты, которые я собираю, выглядят так:
[[1]]
[1] "anonymous: boring!"
[[2]]
[1] "anonymous: random message !"
....
......
Любые идеи?
Отредактировано: my str (твиты), это всего лишь три твита, которые я только что вытащил
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
Ответы
Ответ 1
Не тестировалось, но из того, что я читал онлайн, кажется, что следующее должно работать:
-
Преобразуйте list
в data.frame
library(plyr)
tweets.df = ldply(tweets, function(t) t$toDataFrame())
-
Используйте write.csv
, как прежде, но только для объекта tweets.df
вместо объекта tweets
.
write.csv(tweets.df, file = "newfile.csv")
Источники: Здесь и здесь. См. Также: ?"status-class"
.
Ответ 2
Вы можете использовать следующее для преобразования твитов в твиты dataframe:
tweets.df <- do.call("rbind", lapply(tweets, as.data.frame))
Затем используйте tweets.df в вашей функции write.csv.
Ответ 3
с использованием пакета twitteR:
конвертировать ваши твиты в фрейм данных
tweets2df <- twListToDF(tweets)
затем сохраните его в csv
write.csv(tweets2df, file = "tweets.csv")