我有以下矩阵:
x=
1 0 1 1
0 1 0 0
1 0 0 0
我需要检索以下值(对应于列索引):
在第一行中,r1 =“1”,“3”和“4”。
在第二行中,r2 =“2”
在第三行中,r3 =“1”
我的真实数据是300X66,000的矩阵。
答案 0 :(得分:2)
我们可以创建一个逻辑索引并使用which
和arr.ind=TRUE
来获取行/列索引。最好这样存储它。我们也可以split
'indx'到'列表'。
indx <- which(X!=0, arr.ind=TRUE)
split(indx[,2], indx[,1])
#$`1`
#[1] 1 3 4
#$`2`
#[1] 2
#$`3`
#[1] 1
或将apply
与MARGIN=1
apply(!!X, 1, which)