我正在尝试使用r对sqlite数据库中存储的远程磁盘数据进行操作。以下是我的步骤:
首先,我将flights数据集复制到我的空测试数据库:

library(nycflights13)
library(dplyr)
test_db <- src_sqlite("E:/Sqlite/test_db")
copy_to(test_db, flights, temporary = FALSE)

然后,我清除了r内存并尝试从测试数据库中提取flights
library(dplyr)
test_db <- src_sqlite("E:/Sqlite/test_db")
flights <- tbl(test_db, "flights")
flights_df <- data.frame(select(flights, year, month, day, dep_time, tailnum))

弹出警告
Only first 100,000 results retrieved. Use n = -1 to retrieve all.

不知道如何对包含300000行以上的整个航班数据进行数据帧处理。
实际上是个附带问题:
是否可以直接在数据库中的远程磁盘数据上使用r进行高级数据操作(重塑,长数据到宽数据,宽数据到长数据),而不是在r中调用/数据分帧它们,这通常会导致内存问题?

最佳答案

如果您的目标是将数据带回到r数据帧中,则可以使用dplyr::collect()

flights_df2 <- flights %>%
  select(year, month, day, dep_time, tailnum) %>%
  collect()

09-11 18:14
查看更多