1117 8

[问答] 赋值问题,急求 [推广有奖]

  • 8关注
  • 1粉丝

博士生

78%

还不是VIP/贵宾

-

威望
0
论坛币
436 个
通用积分
0.0602
学术水平
5 点
热心指数
5 点
信用等级
0 点
经验
4549 点
帖子
164
精华
0
在线时间
407 小时
注册时间
2015-11-3
最后登录
2020-2-8

楼主
露露的家园2012 发表于 2017-12-6 11:03:30 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
有一个赋值的问题:
一个矩阵希望替换掉第二列中的负值,其中负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
结果显示虽然第二列特定的位置是进行了替换,但是本身的矩阵中的第二列,并没有发生改变,怎么修改,才能使得矩阵中第二列中小于零的数按照规则进行修改,其他的列的值不变?
谢谢!

二维码

扫码加我 拉你入群

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

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

关键词:两位数

回帖推荐

jinkelazzz 发表于7楼  查看完整内容

没看清需求 mn[which(mn[,2])

慕目穆木 发表于4楼  查看完整内容

mn[1:25,2]

沙发
jinkelazzz 发表于 2017-12-6 11:11:56
mn[,2]<-mm
赋值回去
已有 1 人评分论坛币 学术水平 收起 理由
jiangbeilu + 5 + 2 精彩帖子

总评分: 论坛币 + 5  学术水平 + 2   查看全部评分

藤椅
露露的家园2012 发表于 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

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

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

7
jinkelazzz 发表于 2017-12-7 08:28:57
露露的家园2012 发表于 2017-12-6 14:36
谢谢,可以了。如果要是负数没有连接在一起,该怎么改呢?
没看清需求
mn[which(mn[,2])<0,2]<-mm

8
慕目穆木 学生认证  发表于 2017-12-7 18:24:28
你这里不是mm嘛 ,把mm改成mn就可以了

微信截图_20171207182359.png (8.66 KB)

微信截图_20171207182359.png

9
慕目穆木 学生认证  发表于 2017-12-7 18:25:22
mn[mn==3,2]<-10^(-8)
因为你是找的第二列中小于0的,所以直接赋值回mn第二列的所在行就好了

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-1 02:23