r语言如何将sqlFetch写成循环

Python09

r语言如何将sqlFetch写成循环,第1张

我的建议是可能要大改整个程序:用一个list(比如叫data.list)把所有data frame或者之类的东西装起来,用的时候用data.list[[i]]来取出第i个data frame。用sqldf的时候,第一个和第三个可以用paste来写命令,第二个和第四个可能需要先用一个data frame(比如叫data)来暂时存储data.list里的一个data frame再操作sqldf。总的来说像这样(没怎么用过SQL,可能有问题):

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

dataold_list<-dataold.list<-datanew_list<-datanew.list<-vector("list",100)

for(i in 1:100){

dataold_list[[i]]<-sqldf(paste("select * from Dataold a,num",i," b

where a.LOAN_NO=b.LOAN_NO",sep=""))

dataold_list[[i]]<-dataold_list[[i]][,-1]

data<-dataold_list[[i]]

dataold.list[[i]]<-sqldf("select * from a,data b

where a.LOAN_NO=b.LOAN_NO")

datanew_list[[i]]<-sqldf(paste("select * from Datanew a,num",i," b

where a.LOAN_NO=b.LOAN_NO",sep=""))

datanew_list[[i]]<-dataold_list[[i]][,-1]

data<-datanew_list[[i]]

datanew.list[[i]]<-sqldf("select * from a,data b

where a.LOAN_NO=b.LOAN_NO")

一、 安装RODBC库

1、进入R语言的GUI界面(RGUI.EXE),在菜单栏选择“程序包/安装程序包

2、在弹出的窗口里往下拉,选择RODBC如图,点击确定

3、在ODBC数据源管理器里将需要的数据库添加进去,这里笔者使用的是SQL Server2008,驱动程序选择Native Client10.0

3、在R语言窗口输入连接语句

>library(RODBC)

**这里是载入RODBC库

>channel<-odbcConnect("MyTest",uid="ripley",case="tolower")

**连接刚才添加进数据源的“MyTest”数据库

**ch <- odbcConnect("some dsn ", uid = "user ", pwd = "**** ")

**表示用户名为user,密码是****,如果没有设置,可以直接忽略

>data(USArrests)

**将“USArrests”表写进数据库里(这个表是R自带的)

>sqlSave(channel,USArrests,rownames = "state",addPK = TRUE)

**将数据流保存,这时候打开SQL Server就可以看到新建的USArrests表了

>rm(USArrests)

>sqlTables(channel)

**给出数据库中的表

>sqlFetch(channel,"USArrests",rownames = "state")

**输出USArrests表中的内容

>sqlQuery(channel,"select * from USArrests")

**调用SELECT查询语句并返回结果(如图)

>sqlDrop(channel,"USArrests")

**删除表

>odbcClose(channel)

**最后要记得关闭连接

当然,通过这个办法也可以读取Excel、Access表中的内容,具体方法类似,这里不再重复

R语言如何从外部读取数据到R中

R语言可以从键盘,文本,excel,access,数据库,专业处理软件sas

一、使用键盘的输入

mydata<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0))

mydata<-edit(mydata)

二、读入带有分隔符文本格式的数据

data<-read.table(文件,header=true/false,sep="delimeter",row.names=列名)

其中文件可以有很多选项的

file()gzfile(),bzfile(),等一些压缩文件以及url(http://,ftp://,smtp://)

例子:

默认的时候,字符串会自动使用factor转化为数值型

data<-read.table("student.csv",header=TRUE,sep=",",row.names="studentid",stringsAsFactors=FALSE)

三、将xls文件导入到R中

(1)将xls变成csv的格式导入

(2)在Windows系统中,你也可以使用RODBC包来访问Excel文件。

library(RODBC)

channel <- odbcConnectExcel("student.xls")

mydataframe<-sqlFetch(channel,"Sheet1")

odbcClose(channel)

四、抓取网页并且提取信息

五、导入spss数据

library(Hmisc)

mydata<-spss.get("mydata.sav",use.value.labels=TRUE)

六、导入SAS数据

将sas格式的数据转换为csv格式的数据 然后用read.table()形式导入

七、导入关系型数据库的数据

R中有多种面向关系型数据库管理系统(DBMS)的接口,包括Microsoft SQL Server、Microsoft Access、MySQL、Oracle、PostgreSQL、DB2、Sybase、Teradata以及SQLite。其中一些包通过原生的数据库驱动来提供访问功能,另一些则是通过ODBC或JDBC来实现访问的。

(1)使用ODBC的方式导入数据