我正在尝试使用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.
不知道如何对整个航班数据进行数据处理,这些数据应包含超过300,000行。
实际上是方面的问题: 是否可以使用R直接在数据库中的远程磁盘上数据进行一些高级数据操作(重塑,长数据到宽数据,从长到长),而不是在R中调用/数据框架,这通常可能导致内存问题?
答案 0 :(得分:1)
如果您的目标是将数据带回R数据框,则可以使用dplyr::collect()
。
flights_df2 <- flights %>%
select(year, month, day, dep_time, tailnum) %>%
collect()