Написать твиты из пакета rtweets в CSV - PullRequest
0 голосов
/ 16 января 2020

Я не могу написать твиты из search_tweet () в пакете 'rtweet' в csv. Он выдает следующую ошибку:

Вот ссылка на вопрос, который я ранее задавал, с подробной информацией о типе создаваемого объекта search_tweet (): Класс и тип объекта различаются в R. Как следует Я согласен?

Как мне записать эти файлы как csv?

library(rtweet)
comments <- search_tweets(
    queryString, include_rts = FALSE,
    n = 18000, type = "recent",
    retryonratelimit = FALSE)

write_csv(comments, "comments.csv", append =  TRUE)

Ошибка: ошибка в stream_delim_ (df, path, ..., bom = bom, quote_escape = quote_escape): не знаю, как обрабатывать вектор списка типов.

class(comments)

"tbl_df" "tbl" "data.frame"

screen grab of comments

enter image description here

1 Ответ

2 голосов
/ 16 января 2020

В пакете rtweet есть функция экспорта в CSV, которая называется write_as_csv, но по какой-то причине не предоставляет параметр append=. Вы можете взять код этой функции и изменить его, чтобы добавить опцию добавления. Например,

write_as_csv2 <- function(x, file_name,
                         prepend_ids = TRUE,
                         na = "",
                         fileEncoding = "UTF-8", append=FALSE) {
  ## to minimize rounding
  op <- options()
  on.exit(options(op))
  options(scipen = 14, digits = 22)

  ## validate inputs
  stopifnot(is.data.frame(x), is.character(file_name), length(file_name) == 1L)
  if (!grepl("\\.csv$", file_name)) {
    file_name <- paste0(file_name, ".csv")
  }
  ## flatten data
  x <- flatten(x)
  if (prepend_ids) {
    x <- prepend_ids(x)
  }
  utils::write.table(x, file_name, row.names = FALSE, na = na,
    fileEncoding = fileEncoding, append=append, sep=",", dec=".", qmethod="double")

  # or
  # readr::write_csv(x, file_name, append =  append)
}
environment(write_as_csv2) <- asNamespace("rtweet")

Тогда вы можете назвать его как

write_as_csv2(comments, "comments.csv", append =  TRUE)
...