从大学开始接触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入门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的基本语法,如数据类型、变量声明、控制结构(如IF语句和LOOP语句)、函数调用等。此外,还需要掌握ABAP工作区的概念,这是在ABAP程序中进行数据处理的主要工具。 随着学习的...
X Window 程式设计入门--第一章 什么是 X Window X Window 程式设计入门--第二章 X Programming 的第一步 X Window 程式设计入门--第三章 绘图(Graphic) X Window 程式设计入门--第三章 绘图(Graphic) X Window 程...
《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入门...
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...
VS2010之MFC入门到精通教程的pdf,共306页 ,10大章节,55小节。完整有图版 第一部分:VS2010/MFC 开发环境 VS2010/MFC 编程入门之前言 VS2010/MFC 编程入门之一(VS2010 与MSDN 安装过程图解) 第二部分:VS2010/...
看雪学院新手入门文章 新手OllyDbg入门文章 基础知识 · OllyDBG 入门系列(一)-认识OllyDBG · OllyDBG 入门系列(二)-字串参考 · OllyDBG 入门系列(三)-函数参考 · OllyDBG 入门系列(四)-内存...
微信小程序开发入门教程&深入浅出,从理论到实践 微信小程序开发入门教程&深入浅出,从理论到实践 微信小程序开发入门教程&深入浅出,从理论到实践 微信小程序开发入门教程&深入浅出,从理论到实践 微信小程序开发...
### Qt入门到精通:从新手到专家的旅程 Qt是一个跨平台的应用开发框架,使用C++语言编写,广泛应用于桌面、嵌入式系统和移动设备的GUI应用开发。本篇文章将深入探讨Qt从入门到精通的过程,涵盖基础知识、进阶技巧和...
小码哥MJ 网络协议从入门到底层原理 视频教程 小码哥MJ 网络协议从入门到底层原理 视频教程 小码哥MJ 网络协议从入门到底层原理 视频教程 小码哥MJ 网络协议从入门到底层原理 视频教程 小码哥MJ 网络协议从入门到...
《C#入门经典》系列是屡获殊荣的C#名著和超级畅销书。新版的 C#入门经典(第7版) C# 6.0 & Visual Studio2015 全面介绍使用C# 6和.NET Framework编写程序的基础知识,是编程新手的理想读物。这本分步讲解的实用教程从...
Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门到精通学习教程--Python零基础入门到精通Python零基础入门...
这是一个关于pyqt5-python-Gui的入门教程,干货 ,新手必备,pyqt5 GUI开发教程,详细介绍了基本的程序结构和细小知识点。简单好用,GUI指导,需要的朋友可下载试试! pyqt5新手入门教程,以章节的形式加以讲述,每...
资源名称:sap abap开发从入门到精通 内容简介: 《SAP ABAP开发从入门到精通》以应用实例的形式,讲解了SAPABAP开发的相关知识点,详细介绍了SAPABAP开发者必须掌握的包与变更传输系统(CTS)、数据类型、数据库...
C语言游戏编程从入门到精通.7z 7-zip压缩文件 包含: C语言游戏编程从入门到精通.pdf 影印版 C语言游戏编程从入门到精通(光盘) 文件夹 DOS下游戏编程的C语言教程,包含图形绘制、中文显示、动画实现、文件调用、...
现在救命稻草来了,《零基础入门深度学习》系列文章旨在讲帮助爱编程的你从零基础达到入门级水平。零基础意味着你不需要太多的数学知识,只要会写程序就行了,没错,这是专门为程序员写的文章。虽然文中会有很多公式...
《ASP.NET3.5入门经典:涵盖C#和VB.NET》(第5版)是一本非常好的ASP.NET入门书籍。《ASP.NET3.5入门经典-涵盖C#和VB.NET》以建立一个实际的Web站点为主线,从最初的没有任何功能的简单站点开始,然后逐步增加功能和...
《LabVIEW 2013官方入门教程:深入解析与应用》 一、LabVIEW 2013简介 LabVIEW 2013是由美国国家仪器公司(National Instruments)开发的一款图形化编程环境,主要应用于工程测量和自动化测试领域。自1991年发布...
《C#入门经典》系列是屡获殊荣的C#名著和超级畅销书。新版的 C#入门经典(第7版) C# 6.0 & Visual Studio2015 全面介绍使用C# 6和.NET Framework编写程序的基础知识,是编程新手的理想读物。这本分步讲解的实用...