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)
Connection <- odbcConnect(dsn="servername",uid="userid",pwd="******")
Query <- "SELECT * FROM lib.table WHERE ..."
# Query <- readChar("data/myQuery.sql", nchars=99999) 或者选择从SQL文件中读入语句
myData <- sqlQuery(Connection, Query, errors=TRUE)
odbcCloseAll()
5、导入Excel数据
library(RODBC)
channel=odbcConnectExcel("d:/test.xls")
mydata=sqlFetch(channel,'Sheet1') # 如果是Excel2007格式数据则要换一个函数odbcConnectExcel2007
检索:write.table write.csv区别 不写入行名 row.names 不写入列名 col.names
1. 首先用getwd() 获得当前目录,用setwd("C:/data")设定当前目录:
2.0 数据保存:创建数据框d:
>d <- data.frame(obs = c(1, 2, 3), treat = c("A", "B", "A"), weight = c(2.3, NA, 9))
2.1 保存为简单文本:
>write.table(d, file = "c:/data/foo.txt", row.names = F, quote = F)
2.2 保存为逗号分割文本:
>write.csv(d, file = "c:/data/foo.csv", row.names = F, quote = F)
2.3 保存为R格式文件:
>save(d, file = "c:/data/foo.Rdata")
2.4 保存工作空间镜像:
>save.image( ) = save(list =ls(all=TRUE), file=".RData")
3.0 数据读取:读取函数主要有:read.table( ), scan( ) ,read.fwf( ).
3.1 用 read.table( ) 读 "c:\data” 下houses.dat:
>setwd("C:/data"); HousePrice <- read.table(file="houses.dat")
如果明确数据第一行做表头,则使用header选项:
>HousePrice <- read.table("houses.dat", header=TRUE)
read.table( ) 变形有: aread.csv( ),read.csv2( ), read.delim( ), read.delim2( ).前两读取逗号分割数据,后两个读取其他分割符数据。
3.2 用scan( ) 比read.table( ) 更灵活。但要指定 变量类型:如:C:\data\data.dat:
M 65 168
M 70 172
F 54 156
F 58 163
>mydata <- scan("data.dat", what = list("", 0, 0))
>mydata <- scan("data.dat", what = list(Sex="", Weight=0, Height=0))
3.3 用read.fwf( )读取文件中一些固定宽度数据:如:C:\data\data.txt:
A1.501.2
A1.551.3
B1.601.4
>mydata <- read.fwf("data.txt", widths=c(1, 4, 3), col.names=c("X","Y","Z"))
4.0 excel格式数据读取:
4.1 利用剪切板:选择excel数据,再用(CTRL+C)复制。在R中键入命令:
>mydata <- read.delim("clipboard")
4.2 使用程序包 RODBC.如: c:\data\body.xls
Sex Weight Height
M 65 168
M 70 172
F 54 156
F 58 163
> library(RODBC)
> z <- odbcConnectExcel("c:/data/body.xls")
> foo <- sqlFetch(z, "Sheet1")
> close(z)
R语言:读取数据的更多相关文章
- R语言进行数据预处理wranging
R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with R packages:tidyr dplyr Ground rules ...
- R语言进行数据预处理
R语言进行数据预处理wranging li_volleyball 2016年3月22日 data wrangling with Rpackages:tidyr dplyr Ground rules l ...
- SQL中CRUD C——create 添加数据 R——read 读取数据 U——update 修改数据 D——delete 删除数据
在SQL server中对数据库的操作: 删除表:drop table 表名修改表:alter table 表名 添加列add 列名 列类型alter table 表名 drop column 列名 ...
- R语言 我要如何开始R语言_数据分析师
R语言 我要如何开始R语言_数据分析师 我要如何开始R语言? 很多时候,我们的老板跟我们说,这个东西你用R语言去算吧,Oh,My god!什么是R语言?我要怎么开始呢? 其实回答这个问题很简单,首先, ...
- 用R语言提取数据框中日期对应年份(列表转矩阵)
用R语言提取数据框中日期对应年份(列表转矩阵) 在数据处理中常会遇到要对数据框中的时间做聚类处理,如从"%m/%d/%Y"中提取年份. 对应操作为:拆分成列表——列表转矩阵——利用 ...
- R语言读写数据
R语言读写数据 一般做模型的时候,从外部的excel中读入数据,我现在常用的比较多的是read_csv(file) 读入之前先把excel数据转化成.csv格式 同样的把结果输出来的时候用的是writ ...
- R语言读取文件
1.R语言读取文件,文件类型为.txt 直接使用read.table()即可,若不知道当前的工作目录,可以使用函数getwd()来查看 2.R语言读取文件,文件类型为.xlsx 方法一:可以把excl ...
- R语言外部数据读取
0 引言 使用R语言.Python等进行数据处理的第一步就是要导入数据(也可以使用UCI数据集),下文主要根据R语言的帮助文档来介绍外部文件数据的导入方法和注意事项.下面先附上一些指令. 1 格式r ...
- R语言读取matlab中数据
1. 在matlab中将数据保存到*.mat 文件夹 save("data.mat","data","label")#将data和label ...
- R语言读取Hive数据表
R通过RJDBC包连接Hive 目前Hive集群是可以通过跳板机来访问 HiveServer, 将Hive 中的批量数据读入R环境,并进行后续的模型和算法运算. 1. 登录跳板机后需要首先在Linux ...
随机推荐
- Android应用一般上架流程
Android App上架所需文件 上架准备 App文件: 1. 安装包 2. 应用商标:图片格式KB. 3. 应用截图(4~6张):图片格式JPG或者PNG.图片大小480*800,且每张大小一致 ...
- 【Unity】9.2 如何添加粒子组件
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 粒子系统是作为组件附加到游戏对象上的,有两种添加办法. 二.方式1--添加已制作好的预制体 第1种方式是直接添加已经制作 ...
- tmux使用及配置
这篇博客跟以前的vim配置一样,都是为了以后本人自己方便备份的tmux配置文件 0.安装 centos默认自带的软件是screen,没有带tmux,所以需要源代码安装 get clone http:/ ...
- 菜鸟调错(一)——Maven项目部署到Jboss出现:Failed to create a new SAX parser
今天调试的时候遇到一个错误,往Jboss的deploy目录扔war包的时候,报了一个“Failed to create a new SAX parser”的错误.在网上找了找解决方案,一般都说将项目中 ...
- how many shards and replicas should be set for Elastic Search
https://cpratt.co/how-many-shards-should-elasticsearch-indexes-have/ https://blog.trifork.com/2014/0 ...
- Vue.js简介及指令
1.Vue.js的特点 Vue.js是一个Javascript MVVM(Model-View-ViewModel)库,与传统Jquery的区别在于,Vue.js舍弃了繁杂的DOM操作, 如取DOM值 ...
- GNU make简介
引言 接触开源项目有一段时间了,对自动化编译工具一直很好奇.近期有时间正好整理下GNU make.后续可以深入了解下. 本文主要整理GNU make的学习的基本资料,同时简要介绍make的功能.语法. ...
- tcp/udp只发不接,会丢包还是send失败?
这篇文章源于我看libevent的源码时想到的问题,对于libevent的buffer机制,如果接受端一直不取数据的话,会怎样?如果丢包,不现实,因为会导致数据丢失,如果不丢包,就会导致占用内存一直扩 ...
- 【机器学习】DBSCAN Algorithms基于密度的聚类算法
一.算法思想: DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一个比较有代表性的基于密度的聚类算法.与划分和层 ...
- Silverlight跨域访问wcf
添加文件名为“clientaccesspolicy.xml”的文件 内容: <?xml version="1.0" encoding="utf-8"?&g ...