全部版块 我的主页
论坛 提问 悬赏 求职 新闻 读书 功能一区 经管百科 爱问频道
678 5
2024-08-25
有矩阵A和B,二者行列数、行列名相同, A为数值矩阵,B为逻辑矩阵。现根据矩阵B的true元素位置,对矩阵A进行筛选,保留相应位置的值(即目标值),并把false位置的元素值设为0。
我想得到保留目标元素值(原始值)的矩阵Anew,并将其余元素设为0

现通过以下方式可以实现目标值筛选,但是返回的value全是1
方法1 (返回矩阵,但是value全是01)
filter <- A * (B < 0.05)

方法2 (返回矩阵,但是value全是01)
filter <- ifelse(B<0.05, A, A * (B < 0.05))


方法3(此法直接提取了目标元素,但矩阵变成了向量,false位置信息丢失)
A[B < 0.05]   # 返回1

C <- B < 0.05
A[C]    # 返回原始value



请各位大佬指导迷津,万分感谢

二维码

扫码加我 拉你入群

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

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

全部回复
2024-8-26 09:04:51
顶一下, 别沉了!
二维码

扫码加我 拉你入群

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

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

2024-9-2 13:54:24
复制代码
你的方法1 是对的没错啊  
二维码

扫码加我 拉你入群

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

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

2024-9-2 13:55:25
你检查一下B
二维码

扫码加我 拉你入群

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

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

2024-9-3 21:57:18
Studio-R 发表于 2024-9-2 13:55
你检查一下B
大佬啊 !!  果然,那句话说的"相当比例的问题都是数据问题" 太对了。
方法没问题,是数据矩阵A的问题,恰好计算后出现0,1
二维码

扫码加我 拉你入群

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

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

2024-9-3 21:58:33
Studio-R 发表于 2024-9-2 13:54
你的方法1 是对的没错啊
嗯嗯 是的,方法没问题。
是数据矩阵A的问题。恰好计算出来很多01,让我以为我错了
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

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