从大学开始接触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中定义
分享到:
相关推荐
项目资源包含:可运行源码+数据集+文档 python + numpy, pandas, matplotlib, pyecharts, wordcloud 适用人群:学习不同技术领域的小白或进阶学习者;可作为课程设计、大作业、工程实训或初期项目立项。 数据来源:数据集taxis.csv从网络下载 数据清洗:异常值与缺失值的处理:有一些数据distance(乘车距离)为零而且上下车地点为空,还有些一些数据的payment(支付方式)为空。 数据预处理:将列名更改成中文 标准化与归一化: 数据分析: 数据可视化:
TypeScript 入门教程
人脸识别项目实战
本资源汇总了 历届全国电子设计竞赛(电赛)真题+模拟题,涵盖 电路设计、嵌入式系统、信号处理、自动控制等核心考点,并提供详细解析及综合测评,帮助参赛者高效备赛、查漏补缺、提升实战能力。 适用人群: 适合 准备参加电子设计竞赛的大学生、电赛爱好者、电子信息类相关专业的学生,以及希望提高电子设计和电路分析能力的工程师。 能学到什么: 电赛考察重点:熟悉往届竞赛的命题方向及考核重点。 电路设计与仿真:提升模拟电路、数字电路、单片机等核心技能。 问题分析与解决能力:通过综合测评找到薄弱点并针对性提升。 实战经验:掌握竞赛策略,提高应试效率和设计能力。 阅读建议: 建议先 通读真题,了解题型与解题思路,然后 结合模拟题实战演练,查找不足并通过测评强化练习,逐步提升竞赛能力。
2024人工智能如何塑造未来产业:AI对各行业组织带来的的变革研究研究报告.pdf
人脸识别项目源码实战
给大家分享一套课程——Vulkan原理与实战课程
c语言学习
海豚鲸鱼数据集 5435张图 正确识别率可达92.6% 可识别:海豚 虎鲸 蜥蜴 海豹 鲨鱼 龟 支持yolov8格式标注
答谢中书书教学设计.docx
人脸识别项目源码实战
c语言学习
人脸识别项目源码实战
人脸识别项目实战
本美发门店管理系统有管理员和用户两个角色。用户功能有项目预定管理,产品购买管理,会员充值管理,余额查询管理。管理员功能有个人中心,用户管理,美容项目管理,项目类型管理,项目预定管理,产品库存管理,产品购买管理,产品入库管理,会员卡管理,会员充值管理,余额查询管理,产品类型管理,系统管理等。因而具有一定的实用性。 本站是一个B/S模式系统,采用SSM框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得美发门店管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高美发门店管理系统管理效率。 关键词:美发门店管理系统;SSM框架;MYSQL数据库;Spring Boot 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关技术 2 2.1 MYSQL数据库 2 2.2 B/S结构 3 2.3 Spring Boot框架简介 4 3系统分析 4 3.1可行性分析 4 3.1.1技术可行性 4 3.1.2经济可行性 5 3.1.3操作可行性 5 3.2系
内容概要:本文档介绍了基于SSA-CNN-GRU麻雀算法优化卷积门控循环单元数据分类预测的详细项目实例,重点讲述了该项目的背景、目标、挑战与解决方案、技术特点、应用领域等方面的内容。文档详细记录了从项目启动、数据预处理、算法设计(SSA优化CNN-GRU模型)、构建与评估模型到实现美观的GUI界面整个过程,并讨论了防止过拟合的技术如正则化、早停和超参数优化。另外还涵盖了项目扩展的可能性、部署和应用策略、需要注意的地方以及未来改进的方向。全文强调了模型的泛化能力和计算效率,展示了该混合算法模型在实际应用中的优越性能。 适合人群:具备一定的Python编程经验及机器学习基础知识的研究人员和技术人员;对深度学习、智能优化算法及实际应用感兴趣的学者和从业者;寻求提升数据分析和预测准确性的金融分析师、数据科学家等相关专业人士。 使用场景及目标:本文档非常适合用作学习和参考资料,以掌握如何将SSA、CNN与GRU三种先进技术结合起来进行复杂的分类和预测问题求解。具体应用场景包括但不限于以下几个方面:金融领域——股票价格预测;医疗保健领域——辅助诊断;工业制造——预防性维护;智能家居——个性化服务;以及其他涉及到时序数据分析和多模态数据处理的场合。文档既包含了理论知识又提供了完整的源代码示例,可以帮助读者理解算法原理并通过实践中加深对其的认识。 其他说明:该项目不仅仅是关于算法的设计实现,更是有关于系统的整体架构规划以及工程上的考量,比如环境准备(确保环境洁净、必要包的安装等)、数据准备、GPU配置支持等等。同时文中给出了详细的代码片段,方便开发者理解和复现实验成果。值得注意的是,虽然文中提供了一套通用解决方案,但在真实场景下还需要针对性的调整参数或修改网络结构来达到最好的性能效果。此外,对于追求更高的预测精度或解决更大规模的问题,作者建议进一步探索深度强化学习等高级技术和多任务学习策略,并且考虑使用增量学习让模型能够适应新数据而不必重新训练整个模型。最后提到安全性和隐私保护也是项目实施过程中的重要因素,要妥善保管用户的敏感信息并且做到合法合规地收集和使用数据。
人脸识别项目实战
人脸识别项目实战
水下垃圾检测数据集,基于voc和yolo标注的两种格式,共23,056个文件,已经划分了训练集和验证集、测试集。并且提供了真实水下的视频数据,可以用作视频推理
(参考GUI)MATLAB车辆检测.zip