0

我无法将“rtweet”包中的 search_tweet() 中的推文写入 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

在此处输入图像描述

4

1 回答 1

2

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)
于 2020-01-16T17:57:10.753 回答