全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析与数据挖掘
955 3
2024-08-26
之前的帖子好像,发错分区了。


矩阵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 10:17:33
发错分区
二维码

扫码加我 拉你入群

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

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

2024-8-26 10:23:44
大佬求助!!
二维码

扫码加我 拉你入群

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

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

2024-8-26 13:53:06
很简单,直接向量相乘(不是矩阵相乘)就行。
复制代码
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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