R语言:导入导出数据
主要学习如何把几种常用的数据格式导入到R中进行处理,并简单介绍如何把R中的数据保存为R数据格式和csv文件。
1、保存和加载R的数据(与R.data的交互:save()函数和load()函数)
a <- 1:10
save(a, file = "data/dumData.Rdata") # data文件为当前工作目录下的文件,必须存在
rm(a)
load("data/dumData.Rdata")
print(a)
2、导入和加载.csv文件(write.csv()函数和read.csv()函数)
var1 <- 1:5
var2 <- (1:5) / 10
var3 <- c("R", "and", "Data Mining", "Examples", "Case Studies")
a <- data.frame(var1, var2, var3)
names(a) <- c("VariableInt", "VariableReal", "VariableChar")
write.csv(a, "data/dummmyData.csv", row.names = FALSE)
b <- read.csv("data/dummmyData.csv")
3、导入SPSS/SAS/Matlab等数据集
# 导入spss的sav格式数据则要用到foreign扩展包,加载后直接用read.spss读取sav文件
library(foreign)
mydata=read.spss('d:/test.sav')
# 上面的函数在很多情况下没能将sav文件中的附加信息导进来,例如数据的label,
# 那么建议用Hmisc扩展包的spss.get函数,效果会更好一些。
library(Hmisc)
data=spss.get("D:/test.sav")
导入时候,如果报了这样的错误:
Unrecognized record type 7, subtype 24 encountered in system file
可以使用下面的这个包:
library(memisc)
data<-as.data.set(spss.system.file("D:/test.sav"))
4、导入数据库中的数据
library(RODBC)
#这里是载入RODBC库
Connection <- odbcConnect(dsn="servername",uid="userid",pwd="******")
#连接刚才添加进数据源的数据库,表示用户名为user,密码是****
Query <- "SELECT * FROM lib.table WHERE ..."
# Query <- readChar("data/myQuery.sql", nchars=99999) --或者选择从SQL文件中读入语句
myData <- sqlQuery(Connection, Query, errors=TRUE)
#在R中查询
odbcCloseAll()
#最后要记得关闭连接
R通过RODBC方式进行数据存取的主要函数如下:
函数名称 函数描述
odbcConnect(dsn, uid="", pwd="") # 建立并打开连接
sqlFetch(channel, sqtable) # 从数据库读取数据表,并返回一个数据框对象
sqlQuery(channel, query) # 向数据库提交一个查询,并返回结果
sqlSave(channel, mydf, tablename = sqtable, append = FALSE)
# 将一个数据框写入或更新(append=True)到数据库
sqlDrop(channel, sqtable) # 从数据库删除一个表
sqlClear(channel, sqtable) # 删除表中的内容
sqlTables(channel) # 返回数据库中表的信息
sqlColumns(channel, sqtable) # 返回数据库表sqtable列的信息
close(channel) # 关闭连接
操作步骤:建立DSN——〉打开连接——〉数据操作——〉关闭连接
5、导入Excel数据
library(RODBC)
channel=odbcConnectExcel("d:/test.xls")
mydata=sqlFetch(channel,'Sheet1') #如果是Excel2007格式数据则要换一个函数odbcConnectExcel2007