楼主: 6872_1575543954
954 3

[问题] R语言,矩阵根据逻辑条件筛选后目标值全部变为1? [推广有奖]

  • 0关注
  • 0粉丝

大专生

0%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
1.1878
学术水平
2 点
热心指数
2 点
信用等级
2 点
经验
208 点
帖子
10
精华
0
在线时间
63 小时
注册时间
2019-12-5
最后登录
2024-10-17

楼主
6872_1575543954 发表于 2024-8-26 09:08:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
之前的帖子好像,发错分区了。


矩阵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



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

扫码加我 拉你入群

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

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

关键词:条件筛选 目标值 R语言 filter value

沙发
Killua609 发表于 2024-8-26 10:17:33
发错分区

藤椅
6872_1575543954 发表于 2024-8-26 10:23:44
大佬求助!!

板凳
cheetahfly 在职认证  发表于 2024-8-26 13:53:06
很简单,直接向量相乘(不是矩阵相乘)就行。
  1. mat1 <- matrix(1:12, 3, 4)
  2. mat1

  3. mat2 <- matrix(c(F, T, T, F, F, F, T, T, T, T, F, F), 3, 4)
  4. mat2

  5. mat3 <- mat1 * mat2
  6. mat3
复制代码

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

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