R语言RODBC数据库操作
最近准备做一个股票的数据库,用R语言来获取数据,然后存在SQL Sever 2016 express 里面,虽然前面接触过一些操作,但是还是很不熟悉,现在数据已经能获取到了,是时候好好学习一下怎么用R来操作数据库.
- RODBC基础(翻译自RODBC文档)
- 连接数据库
###载入包
library(RODBC)
###新建一个连接
ch <- odbcConnect("some dsn")
###关闭连接
colse(ch)
###或者
odbcClose(ch)
###如果有密码/大多数情况都有
ch <- odbcConnect("some_dsn", uid = "user", pwd = "****")
2. 从数据库读取文件
###获取可以访问的表
sqlTables(ch)
###更加精确的查询
sqlTables(ch, tableType = "TABLE")
sqlTables(ch, schema = "some pattern")
sqlTables(ch, tableName = "some pattern")
###这里的schema百度说等价于用户名,我对数据库不怎么了解
###要获取某个表的数据
res <- sqlFetch(ch, "table name")
###限制最大行数
res <- sqlFetch(ch, "table name", max = m)
res <- sqlFetchMore(ch, "table name", max = m)
###细节有机会再看了,这里返回的是一个data.frame
###提取列
sqlColumns(ch, "USArrests")
###使用SQL语句筛选出需要返回的数据
sqlQuery(sh, paste("SELECT State, Murder FROM USArrests",
+ "WHERE Rape > 30 ORDER BY Murder"))
###SQL语句的意义另作讨论,不在本文范畴内,需要指出每个DBMS的SQL语句可能不一样
表名字
文中说DBMS允许的表名称可能不一样,有的表名允许有空格,小数点等,像这种数据库需要在连接的时候指定一下参数,具体的看连接的函数,命名的时候还是不要给自己找麻烦的好.
3.向数据库写入
###删除表,可能存在的
sqlDrop(ch, "table name", errors = FALSE)
###创建表,默认使用的是数据框的名字,还有一个函数sqlUpdate
sqlSave(ch, some data frame)
###数据类型存入数据库后只有二进制值和字符串(日期将会作为字符串)
讲道理,会这些应该就能满足我的需要了,虽然这里面肯定还有很多坑,只有实践才会知道了。
- 和SQL server交互
SQl server的安装不在这里说,都是easy的事情,不过需要注意的是在现版本的sql server,需要自己再下载一个management studio(SSMS),至于为什么要装这个......还不是因为不熟悉......
要使用ODBC需要先配置ODBC数据源,方法是win+R搜索ODBC,选择用户dsn,点击添加,选择sql server,服务器不要使用下拉栏的,反正我的会报错,服务器名称去SSMS里面查看,然后复制过来就好。
测试是否可以连接:
这种就算是可以了。
这里我使用一个下载的股票数据来测试,如下:
###其中temptable是我自己创建的
###此函数是我获取股票数据的
stock_data_1 <- get_stock_data_today()
sqlSave(stock_dsn,stock_data_1)
能成功写入。
###增加一行
sqlSave(stock_dsn,stock_data_1[1,],"stock_data_1",append = TRUE)
###这里增加一行之后,rownames会有重复,再次读取的时候会报错
###但是像这样读取不会报错,却会多一列。
temp <- sqlFetch(stock_dsn,"stock_data_1",rownames = FALSE)
###删除表
sqlDrop(stock_dsn,"stock_data_1")
目前这样可以完全满足我的需求了~~~nice
R语言RODBC数据库操作的更多相关文章
- C语言与数据库操作入门
https://blog.csdn.net/flyingqd/article/details/78763652 C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1 ...
- C语言与数据库操作入门(Win版)
C语言与数据库操作入门(Win版) 2017年12月10日 17:30:17 阅读数:1387 数据库,DataBase,学C语言的是不是想说,很想爱她却并不容易呢?不用着急,C语言也可以操作数据库的 ...
- [转]PHP语言的数据库操作函数的理解
就我接触到的R语言以及对数据库的操作来说,基本的操作其实也就是CRUD(Create, Read, Update, Delete). 习惯了之后,对PHP中的MYSQLI操作函数感觉很不适应,查询或者 ...
- R语言读入数据库的中英名词互译测试并计分脚本(考试用)
1. 分子生物学中英文.csv,输入文件,两列,以tab键分隔的txt文本,没有列名 2. 错误的名解.csv, 如果在测试中拼写错误,会写出到这个文件,可用这个容易犯错的名词进行新的测试 3. 注意 ...
- C语言ODBC数据库操作
今天我们来介绍一下C语言操作数据库的方法,这里我们使用的是ODBC方式.环境是WIN7+VC6.其他环境也差不多,具体情况具体分析. 首先是环境的配置以及数据源的添加.这里就不去解释了,相关资料网上有 ...
- Go丨语言对数据库操作报错 panic: dial tcp 127.0.0.1:3306: connectex: No connection could be made because the target machine actively refused it.
panic: dial tcp 127.0.0.1:3306: connectex: No connection could be made because the target machine ac ...
- R语言︱基本函数、统计量、常用操作函数
先言:R语言常用界面操作 帮助:help(nnet) = ?nnet =??nnet 清除命令框中所有显示内容:Ctrl+L 清除R空间中内存变量:rm(list=ls()).gc() 获取或者设置当 ...
- R语言集合操作
熟练运用R语言的集合操作在很多时候可以省去for循环,从而提升数据处理效率.废话不多说,集合操作相对简单,贴一段代码就懂了! > A<-: > A [] > B<-,,) ...
- R连接mysql数据库方法详解
Warning messages: 1: In odbcDriverConnect("DSN=Rdata;UID=root") : [RODBC] ERROR: state IM0 ...
随机推荐
- 关于html中的 script标签中的 代码写法有效性? easyui tabs的href不能载入内容页面
script标签, 即 html中的 js脚本区域中: 它其实就是一个 普通的 html标签, 在 html 渲染器 parser 看来, 它跟其他任何的普通 的 html标签 , 比如 p 标签, ...
- 论文笔记:Decoders Matter for Semantic Segmentation: Data-Dependent Decoding Enables Flexible Feature Aggregation
Decoders Matter for Semantic Segmentation: Data-Dependent Decoding Enables Flexible Feature Aggregat ...
- Xgboost GPU 加速
import xgboost as xgb import numpy as np from sklearn.datasets import fetch_covtype from sklearn.mod ...
- vue-cli 最强指南
今天在这篇文章里,会对 vue-cli 的功能做个详细的整理,把 vue-cli 所有的功能都列出来.注:这个是官网连接:https://cli.vuejs.org/zh/guide/ ,建议多看细看 ...
- 【HNOI 2017】影魔
Problem Description 影魔,奈文摩尔,据说有着一个诗人的灵魂.事实上,他吞噬的诗人灵魂早已成千上万.千百年来,他收集了各式各样的灵魂,包括诗人.牧师.帝王.乞丐.奴隶.罪人,当然,还 ...
- 将pip源设置为国内源的方法
需要将pip源设置为国内源,阿里源.豆瓣源.网易源等 - windows (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %appdata% (3)在这里面新建一个文件夹 pip ( ...
- JAVA程序错误总结
NoSuchMethodError:main 出错原因:找不到main方法,应该是main方法书写有误. 解决方案:检查public static void main(String [] args){ ...
- H5外包团队 技术分享 基于H5+的项目分享
项目截图: 有H5项目需求欢迎联系我们 我们提供免费的项目评估报价 QQ:372900288 WX:Liuxiang0884
- ArcGIS Pro玩转BIM应用浅谈
基于GIS和BIM的集成和融合能给人类带来的价值将是巨大的,方向也是明确的.在国际范围内,各国的专家学者对智慧城市多持有乐观态度,大力倡导建设.基于BIM和GIS结合的智能城市将是一个成熟技术的融合, ...
- centos7 基础命令
一: linux基础 (1) 查看服务器的IP信息 ip add showifconfig (2) 操作网卡命令(重启网络和启用网卡) systemctl restart networksystemc ...