R语言学习笔记(0)

a=sample(1:100,10)
a
[1] 54 8 74 53 45 90 28 77 85 95
order(a)
[1] 2 7 5 4 1 3 8 9 6 10
a(order(a))
Error in a(order(a)) : could not find function “a”
a[order(a)]
[1] 8 28 45 53 54 74 77 85 90 95
sort(a)
[1] 8 28 45 53 54 74 77 85 90 95

找出最大值:

which(a==max(a))
[1] 10

创建矩阵:

x=matrix(1:20,4,5)
x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 5 9 13 17
[2,] 2 6 10 14 18
[3,] 3 7 11 15 19
[4,] 4 8 12 16 20

x=matrix(runif(10),2,5)
x
[,1] [,2] [,3] [,4] [,5]
[1,] 0.9589766 0.9898391 0.6158902 0.44428185 0.50829357
[2,] 0.6122374 0.6831678 0.1218521 0.03017459 0.02119341

x=matrix(1:20,4,5,byrow=T);
x
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
[2,] 6 7 8 9 10
[3,] 11 12 13 14 15
[4,] 16 17 18 19 20

转置矩阵:

t(x)
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20

创建矩阵的方法2:
使用array()

a=array(runif(10),c(2,5))
a
[,1] [,2] [,3] [,4] [,5]
[1,] 0.4466296 0.7148423 0.5686445 0.100598150 0.4255526
[2,] 0.7764345 0.5430266 0.4743980 0.004012793 0.8803468
is.matrix(a)
[1] TRUE
a[1,1]
[1] 0.4466296
a[1,]
[1] 0.4466296 0.7148423 0.5686445 0.1005981 0.4255526
a[,2]
[1] 0.7148423 0.5430266
dim(a)
[1] 2 5

创建三维数组:

> a=array(runif(9),c(3,3,3))
> a
, , 1

          [,1]       [,2]      [,3]
[1,] 0.6668854 0.86824556 0.8454176
[2,] 0.4295950 0.04828795 0.3599318
[3,] 0.6663312 0.02693513 0.6149535

, , 2

          [,1]       [,2]      [,3]
[1,] 0.6668854 0.86824556 0.8454176
[2,] 0.4295950 0.04828795 0.3599318
[3,] 0.6663312 0.02693513 0.6149535

, , 3

          [,1]       [,2]      [,3]
[1,] 0.6668854 0.86824556 0.8454176
[2,] 0.4295950 0.04828795 0.3599318
[3,] 0.6663312 0.02693513 0.6149535

> is.array(a)
[1] TRUE
> is.matrix(a)
[1] FALSE
> x=array(1:12,c(2,3,2))
> x
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

矩阵运算:
乘法使用 %*%

> a=matrix(1:6,2,3);b=matrix(2:7,3,2);
> a
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
> b
     [,1] [,2]
[1,]    2    5
[2,]    3    6
[3,]    4    7
> a%*%b
     [,1] [,2]
[1,]   31   58
[2,]   40   76

求矩阵a的第一维度的均值:
也就是各行的均值

> apply(a,1,mean)
[1] 3 4

求矩阵b的第二维度的均值:
也就是各列的均值

apply(a,2,mean)
[1] 1.5 3.5 5.5

对矩阵的第二维度求和:

apply(a,2,sum)
[1] 3 7 11

对矩阵的第二维度求乘积:

apply(a,2,prod)
[1] 2 12 30

是乘法,但不是矩阵乘法的表达法:

sweep(a,1,1:2,"*")
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 4 8 12

是加法,但不是矩阵加法的表达法:

sweep(a,2,1:3,"+")
[,1] [,2] [,3]
[1,] 2 5 8
[2,] 3 6 9

矩阵乘法:

a*1:3
[,1] [,2] [,3]
[1,] 1 9 10
[2,] 4 4 18

求矩阵属性:

attributes(a)
$dim
[1] 2 3

给矩阵的各行各列标注名字:

x=matrix(1:12,nrow=3,dimnames=list(c(“I”,“II”,“III”),paste(“x”,1:4,sep=" “)))
x
x 1 x 2 x 3 x 4
I 1 4 7 10
II 2 5 8 11
III 3 6 9 12
x=matrix(1:12,nrow=3,dimnames=list(c(“I”,“II”,“III”),paste(“x”,1:4,sep=”")))
x
x1 x2 x3 x4
I 1 4 7 10
II 2 5 8 11
III 3 6 9 12

> y=array(1:12,c(3,2,2),dimnames=list(c("I","II","III"),paste("x",1:2,sep=""),paste("y",1:2,sep="")))
> y
, , y1

    x1 x2
I    1  4
II   2  5
III  3  6

, , y2

    x1 x2
I    7 10
II   8 11
III  9 12

关于data.frame:

x=matrix(1:6,2,3)
x
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
x=as.data.frame(x)
x
V1 V2 V3
1 1 3 5
2 2 4 6
x$V1
[1] 1 2
attributes(x)
$names
[1] “V1” “V2” “V3”

$class
[1] “data.frame”

$row.names
[1] 1 2

> names(x)=c("a","b","c")
> row.names(x)=c("1","2")
> x
  a b c
1 1 3 5
2 2 4 6
> row.names(x)=c("I","II")
> x
   a b c
I  1 3 5
II 2 4 6
> x$a
[1] 1 2

输入数据:
使用函数scan(),并以两次enter结尾:

x=scan()
1: 1 2 3
4: 4 5 6
7: 1 2 3
10:
Read 9 items
x
[1] 1 2 3 4 5 6 1 2 3

计数并列成表格:
使用函数table()

x=c(“Yes”,“No”,“No”)
table(x)
x
No Yes
2 1
factor(x)
[1] Yes No No
Levels: No Yes

C盘用户名如果是中文,绘画不出图,解决方案:
画图前使用dev.new()
画图后使用dev.off()
在这里插入图片描述
出图结果如下:

在这里插入图片描述

发布了109 篇原创文章 · 获赞 30 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_43448491/article/details/103870920
今日推荐