`
eyejava
  • 浏览: 1256734 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

R入门

    博客分类:
  • BI
阅读更多

 

从大学开始接触eviews,虽然是商业软件,但是小巧易用,所以一直忽视作为开源的R。现在的项目已经离不开开源的支持了,所以还是得深入了解一下R,以下的文字大多为读《R for beginners》的随记。

 

 

基础

ls()显示内存中的对象

rm()删除内存中对象,rm(list=ls())删除全部

?lm显示帮助

help(lm)帮助

getwd()获取当前工作目录

setwd("C:/data")改变工作目录

从外部文件中读取数据

mydata<-read.table("test.data"), 返回的是一个数据框

scan()返回一个数值型向量

read.fwf()用于读取固定宽度格式的数据

存储数据

write(变量,"file.txt")

 

R Java API

R本身没有提供Java的API,有一个开源项目rJava在做这个工作,http://www.rforge.net/rJava/

 

3.4 产生序列:

x <- 1:30

seq(1,5,0.5) 递增数字

seq(length=9,from=1,to=2)

rep(1,30) 重复数字

sequence(5:4)

sequence(c(10,5))

sequence的规律看结果

gl() 生成不同水平/层次数据

gl(3,5,label=c("高","中","低"))

expand.grid()创建一个数据框

expand.grid(h=c(60,80),w=c(100,300),sex=c("M","F"))

 

3.5.1数据结构:

向量(Vector),同Java的Vector类似,用 x <- numeric(3)这种形式创建一个vector,之后通过x[1] <-3 来修改。还可以放logical(),character()。向量包含两个参数:mode类型,length长度

因子(Factor),不仅包括分类变量本身还包括变量不同的可能水平。

创建因子:factor(1:3,levels=1:5),factor(1:3,lables="a","b","c"),factor(1:5, exclude=4)

levels(ff)提取水平。 level水平做何解释?

 

矩阵

实际上是有一个附加属性维数dim的向量。

创建矩阵:

 matrix(1:6,2,3)

另一种方法:

x<-1:15

dim(x)<-c(5,3)

x已经变成了矩阵

 

数据框(Data Frame)

可以由read.table间接创建,也可以用函数data.frame创建

x<-1:4 ; M<-c(10,35)

df<-data.frame(x,M)

 

列表list

x<-1:4,y<-c(10,35)

list(x,y) 两个序列

 

时间序列(time-series)

ts(1:10,start=1999)

ts(1:10,start=1999,frequency=12)

ts(1:10,start=1999,frequency=12,start=c(2001,3))

 

表达式expression

eval()对表达式求值

有些函数可以以表达式作为参数,如D()求偏导数函数

D(exp1,"x")表示对x求偏导

 

3.5.2类型转换

as.numeric,as.logical,as.character

 

3.5.3运算符

== 分单个比较,整体比较实用identical和all.equal

x<-1:3;y<-1:3

x==y

identical(x,y);all.equal(x,y)

all.equal比较近似相等,identical完全相等

 

3.5.4下标系统

下标可以是向量

x<-1:5

从矩阵取值、设置使用下标时别忘了逗号

x<-matrix(1:6,3,2)

x[,2]<-c(11,12,13)

x[,1]默认返回的是向量,x[,1,drop=FALSE]返回的是一个3行1列矩阵

下标为负数表示不显示某个位置的值,如x[1]表示不显示矩阵1行1列那个值,x[-1,]表示不显示第1行

对于向量、矩阵和数组,下标还可以是比较运算表达式

如x[x>=5] <-20,将把矩阵中>=5的值替换成20

下标还可以是logical类型的FALSE或TRUE,TRUE则显示,FALSE则不显示

 

3.5.5对象的名称

names,colnames,rownames,dimnames

 

3.5.6数据编辑器

data.entry(x)

 

3.5.7常用函数和数学运算

c()连接对象

手工输入序列 x <- c(1,2,3)

 

向量可以进行常规的算术运算

x<-1:4;y<-rep(1,4)

z<-x+y

不同长度的向量也能相加,最短的向量将被循环使用。

 

3.5.8矩阵计算

rbind()上下合并矩阵

cbind()左右合并矩阵

x<-matrx(1,2,2);y<-matrix(2,2,2)

x %*% y 矩阵乘积

t(x)矩阵转置

diag()获取矩阵的对角元,设置矩阵的对角元,产生对角矩阵

diag(c(10,20,30),3)

solve()矩阵的逆

qr()分解矩阵

eigen()计算特征值和特征向量

svd()奇异值分解

 

R绘图

首先也要加载绘图设备,在Windows系统下用x11(),windows(),pdf()等加载

关闭设置dev.off()

设备列表:dev.list()

 

两种绘图函数:

高级绘图函数high-level plotting functions 创建一种新图形

低级绘图函数low-level plotting functions 在现存图形上添加元素

绘图参数graphical parameters控制绘图选项

 

layout() 等间隔分配子窗口

layout.show(4)显示4四格

 

绘图参数在绘图之前先设定好。

pch符号:pch(plotting character),用0:25表示26个标识

plot(),以坐标轴画图

plot(x,y,type),

type有

"p" for points, 

"l" for lines, 

"b" for both, 

"c" for the lines part alone of "b", 

"o" for both ‘overplotted’, 

"h" for ‘histogram’ like (or ‘high-density’) vertical lines, 

"s" for stair steps, 

"S" for other steps, see ‘Details’ below, 

"n" for no plotting

如何做密度曲线

常用办法:做出x的一个序列,然后做出dfunction(x),fuction指各种概率分布。如

x=seq(-3,3,0.05)

plot(x,dnorm(x),type="l")

lines(x,dt(x,1))

 

 

R的统计分析

需要严重补充

 

 

R编程

 

一般将程序保存为.R后缀文件,如果有语法错误则在运行时会指出哪行有错误。

可以通过source("test.R")来运行

在R运行界面中如果输入{ 则R一直等待 }的出现才结束本条语句

 

在R中显式的运行循环( for in,while等)效率是很低的,所以尽可能通过其他方式来避免显式循环,可选的方式有:

逻辑索引向量替代,如y[x%%2==0] <- 0

apply(), 如 apply(X,2,mean), 第二个参数1表示对行操作,2表示对列操作,这里表示对矩阵的列做均值计算。

lapply()用于对list对象进行操作

sapply() 更为灵活的一个apply,可以接受向量或者矩阵作为主要参数

 

自定义函数

myfunc <- function(arg1,arg2...) {

}

定义好了函数之后,可以通过source("myfunc.R")来加载,或者在启动R的时候加载,需要在.RData中定义,或者在.Rprofile中定义

 

 

 

分享到:
评论

相关推荐

    ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典

    ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP.NET入门经典ASP...

    STM32单片机学习入门基础教程PPT课件(共49个).zip

    STM32入门100步(第10步)I2C和USART接口.pptx STM32入门100步(第11步)SPI、CAN、USB接口.pptx STM32入门100步(第12步)CRC校验和芯片ID.pptx STM32入门100步(第13步)内部功能回顾总结.pptx STM32入门100步(第...

    X-Window程式设计入门 教程

    X Window 程式设计入门--第一章 什么是 X Window X Window 程式设计入门--第二章 X Programming 的第一步 X Window 程式设计入门--第三章 绘图(Graphic) X Window 程式设计入门--第三章 绘图(Graphic) X Window 程...

    古月居ros入门21讲课件

    古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门21讲古月居ros入门...

    PHP从入门到精通.pdf-入门教程.CHM

    《PHP从入门到精通》从初学者角度出发,通过通俗易懂的语言,丰富多彩的实例,详细介绍了使用PHP进行网络开发应该掌握的各方面技术。 全书共分27章,包括初识.PHP、PHP环境搭建和开发工具、PHP语言基础、流程控制...

    MFC 编程入门教程55篇完整版.pdf

    VS2010之MFC入门到精通教程的pdf,共306页 ,10大章节,55小节。完整有图版 第一部分:VS2010/MFC 开发环境 VS2010/MFC 编程入门之前言 VS2010/MFC 编程入门之一(VS2010 与MSDN 安装过程图解) 第二部分:VS2010/...

    HQL语法入门学习HQL语法入门学习

    HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL语法入门学习HQL...

    jQuery入门jQuery入门

    jQuery入门,jQuery入门,jQuery入门,jQuery入门

    单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf

    单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松入门.pdf单片机C语言轻松...

    OllyDbg(OD)新手入门教程(出自看雪学院)

    看雪学院新手入门文章 新手OllyDbg入门文章 基础知识 · OllyDBG 入门系列(一)-认识OllyDBG · OllyDBG 入门系列(二)-字串参考 · OllyDBG 入门系列(三)-函数参考 · OllyDBG 入门系列(四)-内存...

    Python入门经典实例.pdf

    Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例Python入门经典实例...

    C#入门经典(第7版)带目录 高清完整.pdf版下载

    《C#入门经典》系列是屡获殊荣的C#名著和超级畅销书。新版的 C#入门经典(第7版) C# 6.0 &amp; Visual Studio2015 全面介绍使用C# 6和.NET Framework编写程序的基础知识,是编程新手的理想读物。这本分步讲解的实用...

    鸡啄米:VS2010-MFC编程入门教程(1-55).docx

    一、VS2010/MFC编程入门教程之目录 第一部分:VS2010/MFC开发环境 VS2010/MFC编程入门之前言 VS2010/MFC编程入门之一(VS2010与MSDN安装过程图解) 第二部分:VS2010/MFC应用程序框架 VS2010/MFC编程入门之二...

    Ext入门-详细教程

    Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-详细教程Ext入门-...

    ABAP开发从入门到精通-高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通

    ABAP开发从入门到精通_高清自学版 SAP+ABAP开发从入门到精通 SAP开发自学必读 SAP SAP开发自学入门到精通完整版HANA开发

    Visual C++从入门到精通 第2版 刘锐宁 源代码

    Visual C++从入门到精通 第2版 刘锐宁 源代码 解压后42M 《Visual C++从入门到精通》是当前最为流行的可视化编程环境之一。《Visual C++从入门到精通(第2版)》由浅入深、循序渐进地讲解了如何使用Visual C++的开发...

    SVM(支持向量机)入门 (深入浅出讲解原理)

    SVM入门(一)SVM的八股简介 SVM入门(二)线性分类器Part 1 SVM入门(三)线性分类器Part 2 SVM入门(四)线性分类器的求解——问题的描述Part1 SVM入门(五)线性分类器的求解——问题的描述Part2 SVM入门(六)...

    HTML+CSS网页设计与布局从入门到精通

    《HTML+CSS网页设计与布局从入门到精通》紧密围绕网页设计师在制作网页过程中的实际需要和应该掌握的技术,全面介绍了使用HTML和CSS进行网页设计和制作的各方面内容和技巧。 《HTML+CSS网页设计与布局从入门到精通》...

    c#入门到精通pdf

    c#入门到精通 c#入门到精通 c#入门到精通 c#入门到精通

    七天入门PowerBI.pdf

    本电子书主要精选自微信公众号的相关文章,分模块整理而成, 适合刚接触 Power BI 的 新人作为入门学习材料使用,如果你已经入门了 或者已经阅读过公众号中的 大部分 文章 ,完全可以跳过。 PowerBI作为一门实用型的...

Global site tag (gtag.js) - Google Analytics