R语言中编辑矩阵中元素的方法

在实际数据处理过程中,我们有时需要对数据中的元素进行修改,或删除矩阵中的某一行或某一列,甚至需要将两个矩阵进行合并。本文将介绍在R语言中如何实现对矩阵元素的修改操作。

修改矩阵元素的值

以下的操作都是基于这样的一个矩阵:

m1 <- matrix(c(1:6), nrow=2, ncol=3, dimnames = list(c(“r1”, “r2”), c(“c1”, “c2”, “c3”)))

在R语言中,主要通过以下几种形式来修改矩阵中的元素值。

(1)修改单个值

m1[1,2] = 12 #将矩阵m1中第1行第2个元素的值修改为12

m1[“r2”,“c2”] = 22 #将矩阵m1中行名称为r2与列名称c2交叉处的元素值修改为22

(2)修改某一行的数据

m1[2,] = c(21,22,23) #将矩阵第2行的数据修改为21,22,23

m1[“r1” ,] = c(11:13) #将矩阵名称为r1的行的数据修改为11 ,12, 13

m1[1, ] = 0 #将矩阵m1的第一行的数据都修改为0

(3)修改某一列的数据

m1[, 1] = c(11,21) #将矩阵的第一列数据修改为11,21

m1[, “c2”] = c(221,222) #将矩阵中名为c2的列数据改为221,222

m1[,3 ] = 333 #将矩阵第3列的数据都修改为333

注意下面这种情况:

ma <- (1:16, nr=4) #创建名为ma的矩阵,共4行4列

输出

[,1] [,2] [,3] [,4]

[1,] 1 5 9 13

[2,] 2 6 10 14

[3,] 3 7 11 15

[4,] 4 8 12 16

修改第2列的数据:

ma[,2] = c(12,22) #这样,向量的数据可以重复以补齐到与矩阵ma的行数相同

即第2列的数据变为 12 22 12 22

但是如果向量中提供的元素个数不能被替换对象的维数整除的话,会报错,也就是说这里要替换的列元素有4个,提供了2个,2能被4整除,则其通过重复循环向量2次可以将矩阵列元素补齐,但如提供的向量元素有3个的话,会给出“被替换的项目不是替换值长度的倍数”的错误。即对于ma矩阵,其行或列给出替换的元素个数只能是1或2或4,其余会报错。

删除指定的行或列

m1 <- m1[-2,] #删除第2行

m1 <- m1[,-2] #删除第2列

m2<- m2[-1,-2] #删除矩阵的第1行以及第2列

注意,上面使用了给矩阵重新赋值的方式,否则不能实现删除操作,仅是访问。

矩阵的合并

可以使用上面所说的rbind和cbind函数进行合并

m1<-rbind(m1,c(31,32,33)) #将向量按行合并到矩阵m1中

m1<-cbind(m1,c(44,45)) #将向量按列合并到矩阵m1中

同样,上面给出的向量元素不足时,循环使用,同样当元素个数不足时,其提供的元素个数应能被对应的行维或列维除尽,即列数或行数需是所提供的元素个数的整数倍。

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值