R语言创建使用矩阵(按行、按列填充,矩阵命名,矩阵下标使用,数据框转换为矩阵)


创建矩阵

代码:

cells <- c(1, 26, 24, 68)
rnames <- c("R1", "R2")
cnames <- c("C1", "C2")

mymatrix <- matrix(data = cells, nrow = 2, ncol = 2, byrow = TRUE, 
                   dimnames = list(rnames, cnames))

is.matrix(mymatrix)

输出如下:

> cells <- c(1, 26, 24, 68)
> rnames <- c("R1", "R2")
> cnames <- c("C1", "C2")
> 
> mymatrix <- matrix(data = cells, nrow = 2, ncol = 2, byrow = TRUE, 
+                    dimnames = list(rnames, cnames))
> 
> is.matrix(mymatrix)
[1] TRUE
> mymatrix
   C1 C2
R1  1 26
R2 24 68
> 

按行、按列填充

按行填充:设置参数 byrow = TRUE,

mymatrix <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)

输出如下:

> mymatrix <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE)
> mymatrix
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
>

按列填充:设置参数 byrow = FALSE,

mymatrix <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = FALSE)

输出如下:

> mymatrix <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = FALSE)
> mymatrix
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
>

矩阵命名

设置参数 dimnames,这里的 dimnames 是一个长度为 2 的列表,第一个元素为矩阵行名字构成的向量,第二个元素是矩阵列名字构成的向量。

mymatrix <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE,
				   dimnames = list(c('r1', 'r2'), c('c1', 'c2', 'c3')))

输出如下:

> mymatrix <- matrix(data = 1:6, nrow = 2, ncol = 3, byrow = TRUE,
+                    dimnames = list(c('r1', 'r2'), c('c1', 'c2', 'c3')))
> mymatrix
   c1 c2 c3
r1  1  2  3
r2  4  5  6
> 

矩阵下标使用

R 语言中使用 [ ] 来访问矩阵中的元素,用法如下:

mymatrix <- matrix(1:15, 3, 5, TRUE)
mymatrix[c(1, 2), c(3, 4, 5)]

表示访问矩阵中的第1、2行中的第3、4、5列元素,输出如下:

> mymatrix <- matrix(1:15, 3, 5, TRUE)
> mymatrix
     [,1] [,2] [,3] [,4] [,5]
[1,]    1    2    3    4    5
[2,]    6    7    8    9   10
[3,]   11   12   13   14   15
> mymatrix[c(1, 2), c(3, 4, 5)]
     [,1] [,2] [,3]
[1,]    3    4    5
[2,]    8    9   10
> 

转换数据框为矩阵

使用 as.matrix() 函数,函数参数为 R 中除矩阵外的任意对象:

> is.matrix(warpbreaks[1:10,]) 
[1] FALSE
> as.matrix(warpbreaks[1:10,]) 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z.Q.Feng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值