《R in action》《R语言实战》源代码_2.3 数据输入


向R中导入数据的权威指南参见可在 http://cran.r-project.org/doc/manuals/R-data.pdf下载的R Data Import/Export手册

2.3.1 键盘

mydata <- data.frame(age=numeric(0), gender=character(0), weight=numeric(0))
	#age=numeric(0):将创建一个有格式,但为空的变量
mydata <- edit(mydata)
	#edit()必须赋值到一个目标,否则所有修改无效
fix(mydata)			#等价写法

2.3.2 带分隔符的文本文件.txt

read.table()
#格式如下:
mydataframe <- read.table(file, header=logical_value, 
	sep="delimiter", row.names="names")
  • 参数sep默认=" ",即分隔符可以为一或多个空格、制表符(\t)、换行符(\n)、回车符(\r);
  • 字符型变量默认情况下转换为factor,当处理某些情况(如被调查者评论)时,可采取以下方法禁止转换:
  1. 设置选项:stringsAsFactors=FALSE
  2. 使用colClasses为每个列制定格式:如logical(逻辑型)、numeric(数值型)、character(字符型)、factor(因子)

通过连接(connection)来访问数据的机制:文件名参数

  • 函数file():允许用户访问文件、剪贴板和C级别的标准输入。
  • 函数gzfile()、bzfile()、xzfile()、unz():允许用户读取压缩文件。
  • 函数url():能够让你通过一个含有http://、ftp://或file://的完整URL访问网络上的文件,还可以为HTTP和FTP连接指定代理。为了方便,(用""围住的)完整的URL也经常直接用来代替文件名使用。
  • 更多详情,参见help(file)。

2.3.3 Excel数据

  1. 将EXCEL文件导出为.csv(以逗号分隔文件),用read.table(file)导入;
  2. 使用函数read.xlsx(file, n):导入.xlsx文件(实质是多个xml文件组成的压缩包)
library(xlsx)
workbook <- "/Users/Documents/myworkbook.xlxs" #“文件路径”
mydataframe <- read.xlxs(workbook, 1)	#1为要导入的表格名称
  1. Win系统:RODBC包
#安装RODBC包
install.packages("RODBC")
#导入数据
library(RODBC)
channel <- odbcConnectExcel("myfile.xls")
mydataframe <- sqlFetch(channel, "mysheet")
odbcClose(channel)
  • channel:是一个由odbcConnectExcel()返回的RODBC连接对象;
  • mydataframe是返回的数据框;
  • RODBC也可用于从Microsoft Access导入数据。

2.3.4 XML

XML包

2.3.5 网页数据抓取 Webscraping

  1. 结构简单的网页:先用readLines( )下载网页;后用grep( )/gsub( )处理;
  2. 结构复杂的网页:用RCurl包、XML包提取

2.3.6 SPSS

  1. foreign包 -> read.spss()
  2. Hmisc包 -> spss.get()
install.packages("Hmisc")
mydataframe <- spss.get("mydata.sav", use.value.labels=TRUE)

use.value.labels=TRUE:表示让函数将带有值标签的变量导入为R中水平对应相同的因子
???

2.3.7 SAS

  • 旧版本
  1. foreign包 -> read.ssd()
  2. Hmisc包 -> sas.get()
  • 新版本(9.1或更高)
  1. 在SAS中用PROC EXPORT储存为.csv格式文件后导入R
#SAS程序:
proc export data = mydata
	 outfile = "mydata.csv"
	 dbms = csv;
run;

#R:
mydata <- read.table("mydata.csv", header=TRUE, sep=" ")
  1. Stat/Transfer商业软件

2.3.8 Stata

library(foreign)
mydataframe <- read.dta("mydata.dta")

2.3.9 netCDF

  • Unidata项目主导的开源软件库netCDF(network Common Data Form,网络通用数据格式)
  • 常用领域:地球物理
  • ncdf包、ncdf4包(Win不可用,支持netCDF4更早版本)
library(ncdf)
nc <- nc_open("mynetCDFfile")
myarray <- get.var.ncdf(nc, myvar)

2.3.10 HDF5

  • HDF5(Hierarchical Data Format,分层数据格式):是一套用于管理超大型和结构极端复杂数 据集的软件技术方案。
  • hdf5

2.3.11 数据库

  1. ODBC接口
library(RODBC)	#载入了RODBC包
myconn <- odbcConnect("mydsn", uid="Rob", pwd="aardvark")	#通过一个已注册的数据源名称(mydsn)、用户名(rob)、密码(aardvark)打开了一个ODBC数据库连接
crimedat <- sqlFetch(myconn, Crime)		#连接字符串被传递给sqlFetch,它将Crime表复制到R数据框crimedat中
pundat <- sqlQuery(myconn, "select * from Punishment")	#对Punishment表执行SQL语句select并将结果保存到数据框pundat中
close(myconn)	#关闭连接
  1. DBI相关包
  • RJDBC包:使用时请确保安装了针对你的系统和数据库的必要JDBC驱动
  • 其他:RMySQL、ROracle、RPostgreSQL、RSQLite(都为对应的数据库提供了原生的数据库驱动,但可能不是在所有系统上都可用)
  • 详情请参阅 CRAN(http://cran.r-project.org)上的相应文档

2.3.12 Stat/Transfer

主对话框

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值