1. 概述
之前在读取和处理较大的csv数据时,在尝试了一次直接读取处理后发现非常耗时,就改用导入数据库,再通过RMySQL或者RODBC来读取处理数据。今天来比较一下。
加载相关packages
library(data.table)
library(dplyr)
library(sqldf)
library(lubridate)
library(RMySQL)
2. 读取数据
2.1 使用data.table
首先通过data.table的fread()
读取数据,fread()
比read.csv()
的效率高很多,这里不进行详细比较。
time_fread <- system.time(
test <- fread("test.csv")
)
## 数据的大小
paste("数据的大小为:",format(object.size(test),units="auto"))
数据的大小为: 573.1 Mb
2.2 使用RMySQL
导入数据库后效率最高,虽然导入数据库消耗的时间较长,但便于后续统计.
con <- dbConnect(MySQL(),host="localhost",dbname="test_db",user="root",password="root")
# dbListTables(con)
# dbRemoveTable(con,"test")
# 将数据写入数据库
time