R语言小总结(基础篇)

在这里插入图片描述

🐱‍🐉🐱‍🐉🐱‍🐉一起来干R语言,冲冲冲!!!
🤗🤗🤗欢迎大佬们来指点指点鸭~~~
参考资料:
1.多元统计分析及R语言建模(第五版),王斌会 编著。
2.R语言实战

文章目录

  • 一、R安装及配置
    • 1.1 R安装
    • 1.2 编辑器选择
  • 二、基本使用
    • 2.1数据管理
      • 2.1.1 数据矩阵R表示
      • 2.1.2 数组
      • 2.1.3 运算符
      • 2.1.4 数据框
      • 2.1.5 数据调用
    • 2.2 包的使用
    • 2.3 输出/拼接
    • 2.4 R可视化
      • 2.4.1 常用图形
      • 2.4.2 图形保存
      • 2.4.3 图形参数

介绍一下:R基于内存,源自于S语言,R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。有一说一,用它作图是真香。

  • R的资源

R的主页
R的博客
CRAN
书籍:《数据挖掘与R语言》《R语言实战》《R语言编程艺术》

一、R安装及配置

1.1 R安装

  1. 可直接在R主页中下载

在这里插入图片描述

  1. 进去后随便进一个镜像
  2. 然后Download for ×××
  3. 进去后点base
  4. 然后就可以选下载版本啦

在这里插入图片描述

  1. 安装就是一直点就行啦

1.2 编辑器选择

  1. 也可以不用
  2. Rstudio:也是直接从官网下载就好啦!
  3. Jupyter notebook:这个需要下载Python或者Anaconda,直接cmd后pip jupyter notebook,它是IPython形式,用起来挺得劲儿。要是就做简单数据分析,可以直接使用Jupyter云计算平台

要是觉得还要下载来下载去麻烦。直接在vs上也是可以肝的

  1. 在VScode或Pycharm中使用R:R语言环境+小插件(R Language for intellij),小插件直接在这两编辑器中下很快的,创个新项目就能用了

二、基本使用

不哔哔,直接开干。
其他的常用操作

#打开工作空间
setwd("c:/Users/")	#设置临时目录
getwd()	#查看工作目录#以前的命令
history()#内存
memory.limit()	#查看内存大小
memory.limit(n)	#申请内存大小
memory.size(NA)	#查看NA所占内存
memory.size(T)	#查看已分配内存
memory.size(F)	#查看已使用内存# 键盘 ctrl+L	清屏
rm(list=ls())	#清除workplace中所有变量
rm(x)	#从workplace清除变量x
gc()	#清除内存垃圾

2.1数据管理

2.1.1 数据矩阵R表示

小tips:创建向量时,数据类型要一致,虽然可以数字、字符串放在同一向量里面,但是数字的类型就会变成字符型而非数值型。

#请求帮助:
help.start()
help("***")
?***
example(function_name)	#查看方法用例#创建向量:c()
x<-c(1,2,3,4,5);
y<-seq(1,5,length=10);	#从1~5得到10个等间距数
z<-seq(1,5,by=0.5);	# 1.0 1.5 2.0 .... 4.5 5.0
m<-rep(1:3,2);	# 1 2 3 1 2 3
n<-rep(1:3,rep(2,3));	# 1 1 2 2 3 3
#创建矩阵:matrix(data=NA,nrow=1,ncol=1,byrow=FALSE,dimnames=NULL)
# byrow:是否按行排列,dimnames:给行、列的名字
A<-matrix(c(1,2,3,4),nrow=2,ncol=2);#转置:t() or transpose()
B=t(A);#相乘:%*%
C=A%*%B;#对角运算:diag()
diag(A); #获得矩阵对角元素
diag(3); #创建3阶单位矩阵
diag(c(1,2,3)); #创建对角阵#逆:solve(A,b)解线性方程组AX=b,当b缺少时默认为单位阵
solve(A);#特征值:eigen(x,symmetric,only,values=FALSE,EISPACK=FALSE)
# x为矩阵,symmetric指定x是否是对称阵,不指定会自动检测哒~
A.e=eigen(A);	#求矩阵特征值 $values 特征向量 $vectors
# D=UMU'
A.e$vectors%*%diag(A.e$values)%*%t(A.e$vectors)#奇异值分解:svd()  A=UDV'
A=matrix(1:18,3,6);
A.s=svd(A);	#结果:$d $u $v
A.s$u%*%diag(A.s$d)%*%t(A.S%V);#其他
dim(A);	#维数
nrow(A);	#行数
ncol(A);	#列数sum(A);	#求和
rowSums(A);	#按行求和
colSums(A);	#按列求和mean(A);	#均值
rowMeans(A);	#按行求均值
colMeans(A);	#按列求均值

2.1.2 数组

数组的维度可以大于2,说白了还是矩阵推广。

?array;
dim1=c("a1","a2","a3");
dim2=c("b1","b2");
dim3=c("c1","c2","c3","c4");
A=array(1:24,c(3,2,4),dimnames=list(dim1,dim2,dim3));	#相当于4个矩阵

2.1.3 运算符

跟其他语言的大同小异

#基本运算
+ - * / ^
%%	#求余
%/%	#整除#关系运算符
< > == != >= <=#逻辑运算
&& || !#其他
%in%	#判断元素是否在向量中,返回布尔值

2.1.4 数据框

上面的向量中数据类型必须是一样的,要想同时存放不一样类型数据就可以用到数据框。
数据框是一种矩阵形式的数据,但各列可以是不同类型的数据,数据框每列是一个变量,每行是一个观测
可列入数据框的列表对象的一些限制:

  1. 各列可以是不同类型的数据,但一列中各元素数据类型要一致。
  2. 分量必须是向量(数字、字符、逻辑)、因子、数值矩阵、列表或其他数据框。
  3. 矩阵、列表和数据框为新的数据框提供了尽可能多的变量。
  4. 数值向量、逻辑值、因子保持原有格式,但字符向量会被强转成因子并且它的水平就是向量中出现的独立值。
  5. 在数据框中以变量形式出现的向量长度必须一致,矩阵结构必须有相同的行数。
#生成数据框:data.frame(data1,data2,...)
data1=c(1,2,3);
data2=c(4,5,6);
Y=data.frame('name1'=data1,'name2'=data2);rbind(data1,data2);	#按行合并
cbind(data1,data2);	#按列合并# 按行显示
# head()	tail() 可以分别显示数据框的前后若干(默认6)行数据,形成新的数据框
head(Y);
tail(Y);#数据框应用:apply(X,MARGIN,FUN)
# X为数据框或矩阵,MARGIN=1表示对行做运算,MARGIN=2表示对列做运算,FUN指定运算函数。如:
Xr=apply(Y,2,sum);#获取数据框某些列
Y[1:2];	#获取第一、二列
Y[c("name1","name2")];	#获取列名name1、name2的列# 使用sql语句操作数据框
library(sqldf)
newdf <- saldf("sql语句",row.names=TRUE)

2.1.5 数据调用

小tip:美元符号“$”实现数据读取,也可以用 attach() 代替。

#	使用 $
mtcars$mpg	#获取数据框matcars中变量mpg的数据# attach()
attach(mtcars);
mpg;
detach(matcars);	#用完再关#	with()与attach()用法相似,局限在with的大括号内,一般用的少
with(matcars,{
+l<-mpg
+l}
+);#类别型的向量转化为数值型:factor()
datatype=c("type1","type2","type3");
datatype=factor(datatype);#列表整合:mylist=list(object1,object2,...);

从外部录入数据的方法:

  1. 从Excel中直接复制到剪切板上,从剪切板读取。
#clipboard是剪切板,header=T指定第一行是标题
data1=read.table("clipboard",header=T)
  1. 从文本文件读取,比如csv格式文件
#row.names是否包括行号,默认包括
write.csv(X,file='filename',row.names=F);
read.csv('filename')
  1. 从Excel表格读入数据

用的最多的还是Excel,多组数据可以保存在一个Excel工作簿的不同数据表sheet里,但是R语言读取Excel数据要下包openxlsx。

install.packages("openxlsx");	#没有这个包就要下载,有就从下面一行开始执行
library(openxlsx);	#把安装好的包导入到当前的工作环境中
d2.1=read.xlsx('****.xlsx','d2.1');	#读取****.xlsx表格中的d2.1数据
tail(d2.1);	#显示后6行

2.2 包的使用

R语言中的包可谓是多种多样,在调动别人的包时,有版本要求,有的还基于另外的包,有时下载有点多。

install.packages("packagesname");	#没有这个包就要下载,有就从下面一行开始执行
library(packagesname);	#把安装好的包导入到当前的工作环境中,这里别加引号
#然后就可以使用包里面的函数了update.packages();	#把所有的包都给他更新了
update.packages("packsgesname");

2.3 输出/拼接

这里的输出是matlab里面的矩阵串联函数 cat() ;不要弄混啦

# 输出
print("给小椰_T点点关注吧")
cat("小椰是","小椰_T",sep="is")#拼接
res=paste("跟小椰","一起","冲冲冲")	#返回的是字符串,非字符串类型会自动转化成字符串

2.4 R可视化

2.4.1 常用图形

  • 展示定量数据常用:直方图。
  • 描述两个变量之间的关系最常用:散点图。
  • 定性变量的分析:列联表。
  • 箱尾图:比较清晰地表示数据的分布特征。
    • 箱子上下的横线为样本的25%和75%分位数,箱子顶部和底部的差值为四分位间距。
    • 箱子中间的横线为样本的中位数,若这条横线没有在箱子中央,说明样本数据存在偏度。
    • 箱子向上或向下延伸的直线称为“尾线”,若没有异常值,样本的最大值为上尾线的顶部,样本最小值为下尾线的底部。默认情况距离箱子顶部或底部大于1.5倍四分位间距的值为异常值。
    • 箱子顶部的圆圈表示该处数据为一异常值。
  • 星相图将每个变量的各个观察单位的数值表示为一个图形。
#直方图:hist(x,freq=NULL,...)	freq表示绘制频数/频率直方图,默认频数
hist(x1);#散点图:plot(x,y,...)	当仅有x时,以序号为横坐标,x为纵坐标
plot(x,y);#列联表:table(...)	一列或多列定性数据
d2.1=read.xlsx('****.xlsx','d2.1');
attach(d2.1);	#绑定数据,绑定数据框后其中的变量名可以直接使用,用完最好解绑 detach();
table(name1);
table(name1,name2);	# 2维列联表
ftable(name1,name2,name3);	# 3维列联表barplot(table(name2),col=num1:num2);	#条形图
pie(table(name3))	#饼状图#箱尾图:boxplot(x,...)	x为数据框
boxplot(d2.1,horizontal=T);	#水平放置#星相图:stars(x,full=True,draw.segments=FALSE,...)
# full:图的形状  full=TRUE:圆形;full=FALSE:半圆形
# draw.segments:分支形状  draw.segments=TRUE:圆形;draw.segments=FALSE:半圆形
stars(d2.1,full=T,key.loc=c(num1,num2))#其中key.loc=c(num1,num2,num3)用于指定标准星图的位置#脸谱图:faces(x,nrow.plot,ncol.plot,...)
# x 为数值矩阵,每列代表一个变量;
# nrow.plot 图形显示的行数;ncol.plot 图形显示的列数;
library(aplpack);	# TeachingDemos包的faces2()还可以绘制黑白脸谱。
faces(d2.1,ncol.plot=7);

2.4.2 图形保存

可以通过代码或图形来保存图形。将绘图语句夹在开启目标图形设备的语句和关闭图形设备的语句之间。

# 保存格式:pdf()、png()、jpeg()、bmp()、xfig()、tiff()、postscript()、win.metafile()
pdf("xiaoye.pdf");
# 绘图语句
dev.off()

2.4.3 图形参数

图形参数可以帮我们自定义一个图形的特征。

  • 函数 par()

这种方式设定的参数值除非被再次修改,否则将在会话结束前一直有效。

# par(optionname=value,optionname=name,...)
dose <- c(20,30,40,45,60);
druga <- c(16,20,27,45,60);
drug <- c(15,18,25,31,40);
opar <- par(no.readonly=TRUE);	# 生成一个可以修改的,当前图形参数列表
par(lty=2,pch=17);	# 线条类型改为虚线lty=2,点符号改为实心三角pch=17
plot(dose,druga,type="b");
par(opar);	#还原了原始数据
  • 符号和线条参数
pch指定绘制时使用的符号,0~25
lty指定线条类型
cex指定符号大小,cex是一个数值表示符号对于默认值的倍数
lwd指定线条宽度,lwd是以默认值(1)的相对大小来表示,lwd=2生成一条比默认宽度宽2倍的线条

下图来自《R语言实战》
在这里插入图片描述
在这里插入图片描述

  • 颜色
col默认的绘图颜色,某些函数(如lines和pie)可以接受一个含有颜色值的向量并循环使用,如col=c(“red”,“blue”)绘制三条线,第一条为红,第二条为蓝,第三条为红。
col.axis坐标轴可读文字的颜色
col.lab坐标轴标签的颜色
col.main标题颜色
col.sub副标题颜色
fg图形的前景色
bg图形的背景色

在 R 中表示颜色有多种方式,十六进制的颜色值、RGB值或HSV值、颜色名称都可以来指定颜色。

  • 文本属性

指定字号、字体、字样。

cex表示相对于默认大小缩放的倍数,默认值为1
cex.axis坐标值刻度文字的缩放倍数
cex.lab坐标值标签的缩放倍数
cex.main标题的缩放倍数
cex.sub副标题的缩放倍数
font整数。用于指定绘图使用的字体样式。常规=1、粗体=2、斜体=3、粗斜体=4、符号字体=5
font.axis坐标轴刻度文字的字体样式
font.lab坐标轴标签的字体样式
font.main标题的字体样式
font.sub副标题的字体样式

通过函数 text() 和 mtext() 将文本添加到图形上。

text(location,"text to place",pos,...);
mtext("text to place",side,line=n,...);
location文本的位置参数,可以是坐标(x,y),或鼠标交互式地确定摆放位置
pos文本相对于位置参数的方位。上下左右=1234,还可以同时指定offset=偏移量。以相对于单个字符宽度的比例表示
side指定用来放置文本的边。上下左右=1234

数学公式用Tex公式的写法表示。看即时效果可以尝试demo(plotmath)。

  • 图形/边界尺寸
pin以英寸表示的图形尺寸
mai以数值向量表示的边界大小,顺序:下左上右,单位英寸
mar同上,单位英分(1/12英寸),默认值c(5,4,4,2)+0.1

🐴🦓🦄正片正在快马加鞭赶来~~~
🐱‍🏍🐱‍🏍🐱‍🏍冲冲冲

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22141.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

APISpace 生日密码API

APISpace 的 生日密码 API&#xff0c;根据出生日期查询生日密码。每个人的生日都是个迷&#xff0c;星相命理给我们生命的启示,不同的生日都会有不同的命运。生日总有神奇的暗示&#xff0c;凭出生日期的数字测出内在性格和潜在力量。这里帮你揭开【生日密码】的神秘面纱。 返…

R 多元数据可视化

多元数据可视化 1.数据描述2.调入数据3.条图3.1 按行做均值条图3.2 按列做均值条图 4.箱尾图5.星相图5.1具有图例的360度星相图5.2具有图例的180度星相图 6. 脸谱图&#xff08;需加载aplpack&#xff09;7. 调和曲线图&#xff08;需加载mvstats包&#xff09;8. 案例全部程序…

R(现代统计图形)软件的使用

1.R软件的下载安装 1.R官网地址&#xff1a;https://www.r-project.org/ 2.下载流程&#xff1a; 3.安装&#xff1a; 双击运行&#xff0c;语言简体中文&#xff0c;问题不大&#xff0c;都懂的&#xff0c;能不装C盘就不装&#xff1a; 后面我都默认。 4.安装成功&…

面向IoT的协议选择思考

对于使用传感器和保持连接性的IoT系统而言&#xff0c;如何使用这些元素和多种互联网技术相结合呢&#xff1f; 互联网协议并不陌生, 但是IoT相关的互联网协议可能是有不同, 有些协议被用来辅助塑造系统。TCP/IP协议栈上有多个应用层协议&#xff0c; 每种协议都有自己的优势和…

【多元统计分析与R语言】【详解】使用教材P84页表3-2进行多元数据简单R分析:定量变量的分析(直方图、散点图)、定性变量的分析并绘制绘制均值条图、箱尾图、星相图、调和曲线图

可视化[教材P84页表3-2] 1.题目2.题目详解2.1.多元数据简单R分析&#xff1a;定量变量的分析&#xff08;直方图、散点图&#xff09;、定性变量的分析&#xff08;单因素分析、多维列联表&#xff09;。参考教材P45-P52页。2.2.绘制均值条图、箱尾图、星相图、调和曲线图。参考…

星相

今天看了一个死于白血病17岁男孩的盘&#xff0c;心情沉重。人逃不过宿命&#xff0c;当这个宿命是死亡的时候&#xff0c;就额外让人无奈。尤其是&#xff0c;你看到命运已经这样写下了。我还是比较喜欢卜卦盘&#xff0c;简单直接。问的问题也比较不关痛痒&#xff0c;跟这个…

R语言实战--R语言数据可视化中各种图形的函数命令及含义(散点图,星相图,箱线图等)

散点图 > plot(x1,x2)直方图 可以用来表示不同值出现的频率 > hist(x$x1)箱线图 > boxplot(x$x1,x$x2,x$x3)箱子中间的黑色粗线为样本的中位数。比如第一个图为90箱子的上下横线分别表示样本的25%分位线以及75%分位线&#xff0c;意思是有25%的样本数在上横线以上。…

R以国民CPI数据为例绘制箱尾/条状/星相/饼图

本博文源于暨南大学的mooc课程《多元数据统计分析》&#xff0c;如果大家没有装R语言的&#xff0c;可以查看此博文&#xff0c;手把手带你装R R语言安装 下面我们就开始今天的学习吧(ps:博主看matlab看哭了&#xff0c;太难了)。 国民CPI数据分析准备 我会把这个数据上传至资…

取代ChatGPT,腾讯的二次元生成器居然成海外网友新宠​

海外爆红&#xff0c;服务器被挤垮&#xff0c;还顺手普及了点中文&#xff1f; —— 文&#xff5c;杜晨 编辑&#xff5c;VickyXiao 图片来源 | 腾讯 还在沉溺于 ChatGPT 无法自拔&#xff1f; 外国网友早就 move on 了&#xff01; 这两天&#xff0c;另一个AIGC&#…

当 ChatGPT 教我学操作系统

还记得 2021 年 11 月 8 号我开始写 Linux 0.11 的源码解读系列。 当初为了写这个系列&#xff0c;把 Linux 0.11 源码和相关解读的书籍都翻烂了&#xff0c;查阅资料理解代码的过程非常痛苦&#xff0c;有的时候一个小的卡点就要好几天才能整明白。 就比如最开头的位于 boots…

《花雕学AI》你知道人工智能ChatGPT在10秒钟里能写出多少种标题吗?我试了24次,惊呆了!

今天准备测试AI绘画&#xff0c;使用几个不同的AI平台来生成猫娘图片&#xff0c;以此具体学习绘图的AI咒语。这篇博客用什么标题好呢&#xff1f;于是&#xff0c;我开始关心如何优化标题&#xff0c;还是老办法&#xff0c;不懂就问ChatGPT&#xff08;没有正式账号&#xff…

【固收研究】资金面分析

资金面&#xff0c;参考了一些友商的研究&#xff0c;主要是看货币政策&#xff0c;一般是从两个角度出发&#xff0c;一个是回购市场方面&#xff0c;也就是央行的公开操作&#xff1b;另一个是利率方面&#xff0c;主要是分析同业存单利率&#xff0c;也叫从存单市场方面进行…

建议设计师一定要尝试的副业排名TOP1!

要说这年头最苦逼的职业&#xff0c;我觉得非建筑设计师不可&#xff01; 每次项目结束&#xff0c;甲方嗨了&#xff0c;领导爽了&#xff0c;只有咱们设计师继续爆肝下一个需求。 毕竟在项目里&#xff0c;甲方爸爸就负责拍拍脑袋&#xff0c;抛个时间&#xff0c;再闭着眼…

Python+Qt桌面端与网页端人工客服沟通工具

程序示例精选 PythonQt桌面端与网页端人工客服沟通工具 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<PythonQt桌面端与网页端人工客服沟通工具>>编写代码&#xff0c;代码整洁…

科技云报道:“火到爆炸”的ChatGPT,为何当不了智能客服?

科技云报道原创。 任何新兴技术都像一个奇点&#xff0c;充满无限可能、无限想象。你永远无法想到它将以怎样的姿态呈现在人们的面前。 21世纪以前&#xff0c;“AI大爆炸”的设想似乎还只是科幻小说家们杞人忧天的设想。 如今&#xff0c;却有越来越多的人开始严肃地思考一…

TCP连接超时机制

前言 众所周知,TCP协议是一个可靠的的协议。TCP的可靠性依赖于大量的 Timer 和 Retransmission 。现在咱们就来细说一下TCP协议的那些Timer Connection-Establishment Timer 在TCP三次握手创建一个连接时&#xff0c;以下两种情况会发生超时&#xff1a; client发送SYN后&am…

golang http 连接超时和传输超时

golang 测试代码 package mainimport ("net/http""net/url""fmt""io/ioutil""time""net""crypto/tls" )func TimeoutDialer(cTimeout time.Duration, rwTimeout time.Duration) func(net, addr string…

dbeaver的连接超时(Connection timed out: connect)

项目场景&#xff1a; hiveserver2启动了, 虚拟机 里能启动beeline,并且能连接hive2, 但是就是连接不了win上的dbeaver 问题描述&#xff1a; Could not open client transport with JDBC Uri: jdbc:hive2://192.168.2.104:10001/gmall;authnoSasl: java.net.ConnectExcepti…

Postman 请求超时

Postman发送连接时返回Error: Request timed out 服务器端已经启动&#xff0c;通过Postman进行测试时报错。在查阅各个网站资料后解决方法有两种&#xff0c;一是修改setting中的ssl将其关闭&#xff0c;二是将响应时间改为30000等&#xff0c;都没有解决问题。通过尝试&#…

网页上为何出现连接超时,怎么解决呢?

网页出现连接超时是因为本地网络不稳定或网页服务器堵塞等原因造成的。 定义&#xff1a; 网络连接超时就是在程序默认的等待时间内没有得到服务器的响应。 网络连接超 1. 网络断开&#xff0c;不过经常显示无法连接。 2. 网络阻塞&#xff0c;导致你不能在程序默认等待时间内…