全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
3333 2
2019-04-12

tushare的团队已经封装了R接口:通过R语言调取tushare数据

但我在我的R环境中没能安装上,索兴自己照猫画虎写了一个:

query <- function(api_name, token, params = list(), ts_api = "http://api.tushare.pro/"){        post_data <- list(api_name = api_name,                      token = token,                      params = params)        r <- httr::POST(ts_api, body = post_data, encode = 'json') # post json        content <- httr::content(r, "parsed", "application/json")         code <- content[['code']]                if (code == 0){ # retrieve data successfully when code equals 0        with(content[['data']], {            # combine 'items' with 'fields' to create a data.frame            df <- data.table::rbindlist(items)            if(length(df) > 0){                 names(df) <- unlist(fields)            } else { # create an empty data.frame when no items                df <- data.frame(matrix(ncol = length(fields), nrow = 0))                names(df) <- fields            }            list(code=code, data=df)})    } else{ # failed to retrieve data        list(code=code, msg=content[['msg']])    }}

以上代码是用httr访问tushare的restful通用接口,获取并组织数据为数据框。接着是简单封装的获取股票基信息的函数:

stock_basic <- function(token=token) {    query(api_name = "stock_basic", token = token)    }

获取日股票日交易数据的函数:

daily <- function(token=token, ts_code=NULL, trade_date=NULL, start_date=NULL, end_date=NULL) {    params <- list(ts_code=ts_code,                    trade_date=trade_date,                    start_date=start_date,                    end_date=end_date)    query(api_name = "daily",           token = token,          params = params)}

用例:

token <- 'XXXXXXXX'# 获取所有股票的日k数据res1 <- daily(token = token, trade_date = "20190103")df1 <- res1[['data']]# 获取一支股票一个时间段的日k数据res2 <- daily(token = token, ts_code = '600000.SH')df2 <- res2[['data']]# 获取股票的基本信息res3 <- stock_basic(token=token)df3 <- res3[['data']]

httr用起来非常方便,tushare.pro的接口亦不遑多让,十分感谢tushare的Jimmy老师及团队,为我们提供这么好的数据,这么优雅的接口。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2019-4-12 15:16:02
好乱,如何重新编辑排版?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2019-4-12 18:37:01
感谢分享
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群