R语言复习第一课

本文详细讲解了向量的加法、range、sort、order和seq函数,矩阵的生成、合成、截取、相加及内积、外积,以及因子和列表数据结构的处理。通过实例演示了如何在R语言中操作这些数据结构,适合初学者和进阶者学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、向量

1、向量的加法运算

c(1,2,3)+c(2,4,6,1,2,3)
在这里插入图片描述

两个向量相加的时候,其中一个元素个数必须是另一个的整数倍,循环相加,如图的运算,前面向量中的前三位分别和后面向量的前三位和后三位相加。结果就是c(1+2,2+4,3+6,1+1,2+2,3+3).

2、range函数

range(c(1,2,3)+c(2,4,6,1,2,3))
在这里插入图片描述

range可以求出向量中最小的元素与最大的元素,相当于求该向量内元素的“区间”。

3、sort函数

sort(c(1,2,3)+c(2,4,6,1,2,3))
在这里插入图片描述

sort函数将向量内的元素,按照大小排序。
sort函数默认是升序排序,如果想要降序,可以使用以下代码:

x=c(1,2,3)+c(2,4,6,1,2,3)
sort(x,decreasing=TRUE)
在这里插入图片描述

4、order函数

order(x)
在这里插入图片描述

order函数表示x内不同大小的元素所在的位置,按照元素的大小由小到大依次排序,如order(x)中第一个元素4,代表的是x向量中最小的元素2所在的位置,是第4个;而order(x)中最后一个元素3,代表的是x向量中最大的元素9所在的位置,是第3个。
x[order(x)]

知道order(x)表示什么之后,就很好理解x[order(x)],就是按照坐标查找x内的元素。order(x)就是坐标。最后运行的结果就是x进行sort以后的样子。

5、seq

seq(10)
seq(2,100)
seq(2,by=5,100)
seq(along=x)
在这里插入图片描述

seq是生成一个序列。by表示步长,可以不写在中间,在括号内就行。
along=x的意思是,根据x内的元素个数生成自然,x有几个元素,生成的序列就会有几个自然数。

6、rep(重复函数)

rep(c(2,3),3)
将 2 3 重复3遍
在这里插入图片描述
将 2 3 中的2重复3遍,3重复4遍
rep(c(2,3),c(3,4))
在这里插入图片描述
将b a c重复三遍
c(“a”,“b”,“c”)[rep(c(2,1,3),3)]
在这里插入图片描述

7、paste

paste(“I”,“Love”,“You”)
在这里插入图片描述
paste(c(“X”,“Y”),"=",4:7)
粘贴,长度必须是整数倍,x和y循环粘贴
在这里插入图片描述
x[c(1,3)] #取x的第1和第3个元素
在这里插入图片描述
x[-c(1,3)] #去掉x的第1和第3个元素
在这里插入图片描述
8、索引
ages=c(Li=32,Zhang=33,Lin=35)
在这里插入图片描述
索引
ages[“Li”]
在这里插入图片描述
ages[1]
在这里插入图片描述
9、替换
x[c(1,3)]=c(188,189) #把x中第1位和第3位替换掉
在这里插入图片描述

二、矩阵

1、生成矩阵

A=matrix(data,ncol,nrow,byrow)
ncol表示列
nrow表示行
byrow默认是按照列排序,如果要按行排,byrow要赋值TRUE
在这里插入图片描述

2、合成矩阵

cbind(c(1,2),c(3,4)) #cbind按列排
rbind(c(1,2),c(3,4)) #rbind按行排
在这里插入图片描述

练习:生成矩阵
在这里插入图片描述

解法:

B1=matrix(1:12,ncol=4,nrow=3,byrow=T)
B2=rep(c(0,3),2)
B3=seq(7,by=-1,4)
cbind(rbind(B1,B3),B2)
在这里插入图片描述

3、截取

A[1:2,] #1:2表示取1-2行
A[,1:2] #1:2表示取1-2列
在这里插入图片描述

4、矩阵相加

A+c(100,200,300) #矩阵相加是按列循环相加
在这里插入图片描述

5、内积

crossprod(c(1,2,3),c(2,3,4))
或%%
在这里插入图片描述
上面生成的是一个1
1的矩阵,想要把它变成一个数,需要另外运算
c(crossprod(c(1,2,3),c(2,3,4)))
在这里插入图片描述

6、外积
%o% #小写o
或outer(a,b,"*")

c(1,2)%o%c(3,4)
在这里插入图片描述

三、因子

factor(x,level=c(0,1),label=c("",""))

factor(c(1,0,0,1,1),level=c(0,1),label=c(“male”,“female”))
在这里插入图片描述

分别计算平均值

tapply(c(165,170,168,172,159),factor(c(“male”,“female”,“male”,“male”,“female”)),mean)
在这里插入图片描述

#gl(n,k,length=n*k) k表示重复次数

gl(2,3) #2个水平,重复3次
在这里插入图片描述
gl(2,1,6) #2个水平,每个水平出现1次,总长度6
在这里插入图片描述

四、列表和数据框

rec=list(name=“liming”,age=30,score=c(100,23,56))
在这里插入图片描述
rec[[3]] #双中括号
在这里插入图片描述
rec$age=13 #更改年龄为13
在这里插入图片描述

五、cat

cat(c(“AB”,“c”),c(“E”,“F”),"\n",sep=" ")
在这里插入图片描述

file里面写目录,表示把前面的东西输出到文件里去

cat(“i=”,1,"\n",file="",append=TRUE)
append表示悬挂,这样后面写的东西不会把文件里面的覆盖掉

接下来写一串代码运行一下试试,先创建一个路径后再运行代码。把路径粘贴到file后面。

write(t(A),file=“D:/fyhSTUDY/r/data.txt”)
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值