`
eyejava
  • 浏览: 1270825 次
  • 性别: 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中定义

 

 

 

分享到:
评论

相关推荐

    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步(第...

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

    对于初学者,入门阶段通常包括理解ABAP的基本语法,如数据类型、变量声明、控制结构(如IF语句和LOOP语句)、函数调用等。此外,还需要掌握ABAP工作区的概念,这是在ABAP程序中进行数据处理的主要工具。 随着学习的...

    X-Window程式设计入门 教程

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

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

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

    古月居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入门...

    ACCESS入门教程(通俗易懂 适合入门)

    通俗易懂,适合入门者,图文并貌,比较详细 (1)初识Access 2000 (2)用向导建立数据库 (3)窗口接口使用简介 (4)数据库的结构 (5)用表向导建立表 (6)在表中输入数据 (7)数据的类型和属性 (8)定义表...

    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...

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

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

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

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

    微信小程序开发入门教程&深入浅出,从理论到实践.pdf

    微信小程序开发入门教程&深入浅出,从理论到实践 微信小程序开发入门教程&深入浅出,从理论到实践 微信小程序开发入门教程&深入浅出,从理论到实践 微信小程序开发入门教程&深入浅出,从理论到实践 微信小程序开发...

    Qt 入门中文资料 Qt从入门到精通

    ### Qt入门到精通:从新手到专家的旅程 Qt是一个跨平台的应用开发框架,使用C++语言编写,广泛应用于桌面、嵌入式系统和移动设备的GUI应用开发。本篇文章将深入探讨Qt从入门到精通的过程,涵盖基础知识、进阶技巧和...

    小码哥MJ 网络协议从入门到底层原理 视频教程

    小码哥MJ 网络协议从入门到底层原理 视频教程 小码哥MJ 网络协议从入门到底层原理 视频教程 小码哥MJ 网络协议从入门到底层原理 视频教程 小码哥MJ 网络协议从入门到底层原理 视频教程 小码哥MJ 网络协议从入门到...

    c#入门经典第6版pdf

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

    pyqt5 python Gui入门教程 中文PDF高清版

    这是一个关于pyqt5-python-Gui的入门教程,干货 ,新手必备,pyqt5 GUI开发教程,详细介绍了基本的程序结构和细小知识点。简单好用,GUI指导,需要的朋友可下载试试! pyqt5新手入门教程,以章节的形式加以讲述,每...

    Python零基础入门到精通基Python100个源码实例.zip

    Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门...

    sapabap开发从入门到精通

    资源名称:sap abap开发从入门到精通 内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库...

    C语言游戏编程从入门到精通.7z (含光盘代码)

    C语言游戏编程从入门到精通.7z 7-zip压缩文件 包含: C语言游戏编程从入门到精通.pdf 影印版 C语言游戏编程从入门到精通(光盘) 文件夹 DOS下游戏编程的C语言教程,包含图形绘制、中文显示、动画实现、文件调用、...

    零基础入门深度学习(系列) 中文PDF完整版

    现在救命稻草来了,《零基础入门深度学习》系列文章旨在讲帮助爱编程的你从零基础达到入门级水平。零基础意味着你不需要太多的数学知识,只要会写程序就行了,没错,这是专门为程序员写的文章。虽然文中会有很多公式...

    ASP.NET3.5入门经典:涵盖C#和VB.NET(第5版)pdf

    《ASP.NET3.5入门经典:涵盖C#和VB.NET》(第5版)是一本非常好的ASP.NET入门书籍。《ASP.NET3.5入门经典-涵盖C#和VB.NET》以建立一个实际的Web站点为主线,从最初的没有任何功能的简单站点开始,然后逐步增加功能和...

    labview 2013官方入门教程 入门必备

    《LabVIEW 2013官方入门教程:深入解析与应用》 一、LabVIEW 2013简介 LabVIEW 2013是由美国国家仪器公司(National Instruments)开发的一款图形化编程环境,主要应用于工程测量和自动化测试领域。自1991年发布...

Global site tag (gtag.js) - Google Analytics