R语言:抓取股票数据并存入数据库进行分析实例 MySQL

1

R语言连接mySql

准备:

  1. R: https://cloud.r-project.org/b...
    R studio: https://download1.rstudio.org...
  2. RODBC
    R studio console下

       > Install.packages(RODBC) 
    
  3. 安装MySql

    https://dev.mysql.com/get/Downloads/MySQLInstaller/mysql-installer-community-8.0.12.0.msi
  4. 配置ODBC
    a) 控制面板系统和安全管理工具数据源(odbc)

    clipboard.png

    b) 点击系统DSN - 添加

clipboard.png

clipboard.png



    c)  填写数据源设置,
        数据源名dataSourseName:RODBC用于连接数据库的名称
        描述 description: 可不填
        TCP/IP server:用tcp/ip连接需填写ip,本地默认填127.0.0.1或localhost
        Name Pipe:使用mySQL中所设置的用户连接(需在MySQL中存在对应用户)
        DataBase:选择需要操作的数据库,这里选择已存在的名为mysql的数据库
        点击test提示连接成功即可开始Rstudio下载数据操作



下载数据并存储

#!/path/to/Rscript
#载入quantmod包以用于下载数据
library("quantmod")
#定义一个全局变量存储数据
stockData<- new.env()
#定义开始时间、截止时间
startDate = as.Date("2017-01-01")
endDate = as.Date("2017-12-31")
#选择需要查询的股票代号存入一个数组中
tickers <- c("AAPL")
#下载数据
getSymbols(tickers,env = stockData,src = "yahoo",from= startDate,to = endDate)
#options(max.print = 10000)
#print(stockData$AAPL)

#载入RODC包
library(RODBC)
#odbc建立连接
channel <-odbcConnect("stockdata",uid="sqlUser",pwd ="1234")
#查询数据库中已有表
sqlTables(channel)
#将数据存入一个数据框中
open <- stockData$AAPL[,1]
high <- stockData$AAPL[,2]
low <- stockData$AAPL[,3]
close <- stockData$AAPL[,4]
volume <- stockData$AAPL[,5]
adjusted <- stockData$AAPL[,6]
sheet<-data.frame(open,high,low,close,volume,adjusted)
#将该数据框sheet作为“stock_table”表存入数据库,将所有行名作为第一列保存
sqlSave(channel,sheet,tablename = "stock_table",rownames = TRUE)

苹果[AAPL]从2017-01-01至2017-12-31股票数据已存入数据库中stock_Table表中
可使用RODBC 函数执行查找(paste()添加一段可执行SQL语句)

> sqlQuery(channel,sqtable)

clipboard.png

clipboard.png

你可能感兴趣的

载入中...