我有一个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)