一、向量

1、向量的加法运算

c(1,2,3)+c(2,4,6,1,2,3)

R语言中向量相乘 r语言向量相加_升序

两个向量相加的时候,其中一个元素个数必须是另一个的整数倍,循环相加,如图的运算,前面向量中的前三位分别和后面向量的前三位和后三位相加。结果就是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))

R语言中向量相乘 r语言向量相加_R语言中向量相乘_02

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

3、sort函数

sort(c(1,2,3)+c(2,4,6,1,2,3))

R语言中向量相乘 r语言向量相加_r语言_03

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

x=c(1,2,3)+c(2,4,6,1,2,3)
sort(x,decreasing=TRUE)

R语言中向量相乘 r语言向量相加_升序_04

4、order函数

order(x)

R语言中向量相乘 r语言向量相加_sort函数_05

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)

R语言中向量相乘 r语言向量相加_赋值_06

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

6、rep(重复函数)

rep(c(2,3),3)
将 2 3 重复3遍

R语言中向量相乘 r语言向量相加_升序_07


将 2 3 中的2重复3遍,3重复4遍


rep(c(2,3),c(3,4))


R语言中向量相乘 r语言向量相加_赋值_08


将b a c重复三遍


c(“a”,“b”,“c”)[rep(c(2,1,3),3)]


R语言中向量相乘 r语言向量相加_R语言中向量相乘_09

7、paste

paste(“I”,“Love”,“You”)

R语言中向量相乘 r语言向量相加_升序_10


paste(c(“X”,“Y”),"=",4:7)


粘贴,长度必须是整数倍,x和y循环粘贴


R语言中向量相乘 r语言向量相加_赋值_11


x[c(1,3)] #取x的第1和第3个元素


R语言中向量相乘 r语言向量相加_R语言中向量相乘_12


x[-c(1,3)] #去掉x的第1和第3个元素


R语言中向量相乘 r语言向量相加_sort函数_13


8、索引


ages=c(Li=32,Zhang=33,Lin=35)


R语言中向量相乘 r语言向量相加_R语言中向量相乘_14


索引


ages[“Li”]


R语言中向量相乘 r语言向量相加_升序_15


ages[1]


R语言中向量相乘 r语言向量相加_赋值_16


9、替换


x[c(1,3)]=c(188,189) #把x中第1位和第3位替换掉


R语言中向量相乘 r语言向量相加_R语言中向量相乘_17

二、矩阵

1、生成矩阵

A=matrix(data,ncol,nrow,byrow)
 ncol表示列
 nrow表示行
 byrow默认是按照列排序,如果要按行排,byrow要赋值TRUE

R语言中向量相乘 r语言向量相加_r语言_18

2、合成矩阵

cbind(c(1,2),c(3,4)) #cbind按列排
 rbind(c(1,2),c(3,4)) #rbind按行排

R语言中向量相乘 r语言向量相加_赋值_19

练习:生成矩阵

R语言中向量相乘 r语言向量相加_R语言中向量相乘_20

解法:

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)

R语言中向量相乘 r语言向量相加_赋值_21

3、截取

A[1:2,] #1:2表示取1-2行
 A[,1:2] #1:2表示取1-2列

R语言中向量相乘 r语言向量相加_r语言_22

4、矩阵相加

A+c(100,200,300) #矩阵相加是按列循环相加

R语言中向量相乘 r语言向量相加_升序_23

5、内积

crossprod(c(1,2,3),c(2,3,4))
 或%%

R语言中向量相乘 r语言向量相加_升序_24


上面生成的是一个11的矩阵,想要把它变成一个数,需要另外运算
 c(crossprod(c(1,2,3),c(2,3,4)))

R语言中向量相乘 r语言向量相加_r语言_25

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

c(1,2)%o%c(3,4)

R语言中向量相乘 r语言向量相加_r语言_26

三、因子

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

factor(c(1,0,0,1,1),level=c(0,1),label=c(“male”,“female”))

R语言中向量相乘 r语言向量相加_赋值_27

分别计算平均值

tapply(c(165,170,168,172,159),factor(c(“male”,“female”,“male”,“male”,“female”)),mean)

R语言中向量相乘 r语言向量相加_升序_28

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

gl(2,3) #2个水平,重复3次

R语言中向量相乘 r语言向量相加_升序_29


gl(2,1,6) #2个水平,每个水平出现1次,总长度6


R语言中向量相乘 r语言向量相加_升序_30

四、列表和数据框

rec=list(name=“liming”,age=30,score=c(100,23,56))

R语言中向量相乘 r语言向量相加_sort函数_31


rec[[3]] #双中括号


R语言中向量相乘 r语言向量相加_赋值_32


rec$age=13 #更改年龄为13


R语言中向量相乘 r语言向量相加_sort函数_33

五、cat

cat(c(“AB”,“c”),c(“E”,“F”),"\n",sep=" ")

R语言中向量相乘 r语言向量相加_sort函数_34

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

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

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

write(t(A),file=“D:/fyhSTUDY/r/data.txt”)

R语言中向量相乘 r语言向量相加_赋值_35


R语言中向量相乘 r语言向量相加_R语言中向量相乘_36