之前的帖子好像,发错分区了。
矩阵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
请各位大佬指导迷津,万分感谢