【发布时间】:2022-09-22 23:37:20
【问题描述】:
我一直在尝试从 R 中的矩阵中提取“真”的所有组合。 我这里有 5x5 矩阵“MAT”
99 70 33 36 93
99 TRUE FALSE FALSE FALSE TRUE
70 FALSE TRUE FALSE FALSE FALSE
33 FALSE FALSE TRUE TRUE TRUE
36 FALSE FALSE TRUE TRUE FALSE
93 TRUE FALSE TRUE FALSE TRUE
`dput(MAT)`
structure(c(TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE,
FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, TRUE,
TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE), dim = c(5L, 5L), dimnames = list(
c(\"99\", \"70\", \"33\", \"36\", \"93\"), c(\"99\", \"70\", \"33\", \"36\",
\"93\")))
我想列出 T 的所有组合。我还需要删除重复的组合,因为矩阵具有对称结构。 我想要一个看起来像的结果
[,1] [,2]
[1,] 99 99
[2,] 99 93
[3,] 70 70
[4,] 33 33
[5,] 33 36
[6,] 33 93
[7,] 36 36
[8,] 93 93
我试过apply(MAT,1,function(data)names(which(data==T))),但结果如下。如果我可以从下面的结果转换为上面的理想结果,那也有效。谢谢你的支持!
$99
[1] \"99\" \"93\"
$70
[1] \"70\"
$33
[1] \"33\" \"36\" \"93\"
$36
[1] \"33\" \"36\"
$93
[1] \"99\" \"33\" \"93\"
-
请以可复制/可粘贴的有效 R 语法共享示例数据,而不是作为屏幕截图。如果您的矩阵名为
MAT,则dput(MAT)将创建对象的复制/可粘贴版本。 -
感谢您的评论。我编辑了我最初的帖子!带来不便敬请谅解。
标签: r