楼主: 6872_1575543954
677 5

[统计软件] 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-25 23:04:54 |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 逻辑判断

沙发
6872_1575543954 发表于 2024-8-26 09:04:51
顶一下, 别沉了!

藤椅
Studio-R 在职认证  发表于 2024-9-2 13:54:24
  1. > A <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, byrow = TRUE)
  2. > B <- matrix(c(1, 2, 3, 4, 5, 6, 7, 8, 9), nrow = 3, byrow = TRUE)
  3. > A * (B <5)
  4.      [,1] [,2] [,3]
  5. [1,]    1    2    3
  6. [2,]    4    0    0
  7. [3,]    0    0    0
复制代码
你的方法1 是对的没错啊  
[url=https://edu.cda.cn/page/110][/url]

板凳
Studio-R 在职认证  发表于 2024-9-2 13:55:25
你检查一下B
已有 1 人评分学术水平 热心指数 收起 理由
6872_1575543954 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

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

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

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

本版微信群
扫码
拉您进交流群
GMT+8, 2026-2-13 07:08