如何保存大型数据框并在 R 中快速加载它?

How to save a large dataframe and quickly load it in R?

我目前正在开展一个项目,以提取有关 Wikipedia FR 中 Acadie 门户的定性和定量(统计)数据。有 1905 个条目和 16 个变量。

每次我使用以下代码加载所有统计数据时,加载都需要一些时间。 有没有一种方法可以将此 data.frame 保存在我的计算机上并再次加载它以备将来快速使用,同时又能使它井井有条?

# Basic information ----

library("WikipediR")

# Function
# How to make function outside of apply: https://ademos.people.uic.edu/Chapter4.html#:~:targetText=vapply%20is%20similar%20to%20sapply,VALUE).&targetText=VALUE%20is%20where%20you%20specify,single%20numeric%20value%2C%20so%20FUN.
pageInfo_fun <- function(portalAcadie_titles){
  page_info(language = "fr", 
            project = "wikipedia", 
            page = portalAcadie_titles,
            properties = c("url"),
            clean_response = T, Sys.sleep(0.0001))} # Syssleep to prevent quote violation.

pageInfo_data <- apply(portalAcadie_titles,1, pageInfo_fun)

# Transform into dataframe

library("tidyverse")
pageInfo_df <- data.frame(map_dfr(pageInfo_data, ~flatten(.)))

它给了我一个可行的数据框,如下所示:

当我尝试将它保存到 csv,然后使用 ff 包和 read.csv.ffdf() 时,它没有给我一个可行的数据框。它用 20 000 个变量将所有变量和观察结果合并到一个观察结果中。

您可以通过以下方式轻松序列化它:

readr::write_rds(pageInfo_df, "pageInfo_df.Rds")

然后像这样反序列化它:

readr::read_rds("pageInfo_df.Rds")

这应该可以处理任意复杂度的每个有效 R 对象。