全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1029 8
2017-12-06
有一个赋值的问题:
一个矩阵希望替换掉第二列中的负值,其中负1位的替换成10^(-6),负两位数的替换成10^(-7),负三位数的替换成10^(-8);目前我已通过一下的代码将上述过程实现,但是问题在于,我已经将符合条件的值挑选出来替代了(mm已经将其中的负值按照条件替换成功),但是我读入的矩阵m却没有改变,应该怎么是矩阵改变呢?
代码如下:
m<-seq(-149,150,by=1)
mn<-matrix(m,nrow = 50,ncol = 6,byrow = TRUE)
mn<-floor(log(abs(mn[which(mn[,2]<=0),2]),10)+1)
mm<-numeric(length(mn))
mm[mn==3]<-10^(-8)
mm[mn==2]<-10^(-7)
mm[mn==1]<-10^(-6)
mm

运行的结果如下:
微信图片_20171206105816.png
微信图片_20171206105749.png
结果显示虽然第二列特定的位置是进行了替换,但是本身的矩阵中的第二列,并没有发生改变,怎么修改,才能使得矩阵中第二列中小于零的数按照规则进行修改,其他的列的值不变?
谢谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2017-12-6 11:11:56
mn[,2]<-mm
赋值回去
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-6 11:21:30
jinkelazzz 发表于 2017-12-6 11:11
mn[,2]
不行啊,因为mm和mn的长度是不一样的
length(mn[,2])
[1] 50
> length(mm)
[1] 25
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-6 13:18:43
mn[1:25,2]<-mm
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-6 14:36:36
慕目穆木 发表于 2017-12-6 13:18
mn[1:25,2]
谢谢,可以了。如果要是负数没有连接在一起,该怎么改呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2017-12-6 14:36:37
慕目穆木 发表于 2017-12-6 13:18
mn[1:25,2]
谢谢,可以了。如果要是负数没有连接在一起,该怎么改呢?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群