R:如何获取矩阵的真实元素的行名和列名?

Leo*_*Leo 9 r

我有一个x带有命名行('a'和'b')和命名列('10','20','30','40')的逻辑矩阵.让我们说,这个:

   10   20   30   40  
a  T    F    T    F  
b  F    T    F    T  

structure(c(TRUE, FALSE, FALSE, TRUE, TRUE, FALSE, FALSE, TRUE),
.Dim = c(2L, 4L), .Dimnames = list(c("a", "b"), c("10", "20", "30", "40")))
Run Code Online (Sandbox Code Playgroud)

有一个简短的方法来获取一个表,列出我有真值的行和列的名称?也就是说,我想得到下表:

a  10, 30
b  20, 40
Run Code Online (Sandbox Code Playgroud)

可以通过which(x, arr.ind = T)产生类似的东西来获得

  row col
a   1   1
b   2   2
a   1   3
b   2   4
Run Code Online (Sandbox Code Playgroud)

但我真的想得到第一张桌子.

Vin*_*ynd 11

你可以直接使用apply.

apply(
  x, 1, 
  function(u) paste( names(which(u)), collapse="," ) 
)
Run Code Online (Sandbox Code Playgroud)

  • +1:`t(t(应用(m,1,函数(u)粘贴(名称(其中(u)),collapse =","))))`更接近于请求的结果,还有进一步的调整 (2认同)