如何检索R中具有特定值的每一行的列索引?

时间:2015-03-26 16:22:41

标签: r

我有以下矩阵:

x=
1 0 1 1  
0 1 0 0  
1 0 0 0  

我需要检索以下值(对应于列索引):

  • 在第一行中,r1 =“1”,“3”和“4”。

  • 在第二行中,r2 =“2”

  • 在第三行中,r3 =“1”

我的真实数据是300X66,000的矩阵。

1 个答案:

答案 0 :(得分:2)

我们可以创建一个逻辑索引并使用whicharr.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

或将applyMARGIN=1

一起使用
apply(!!X, 1, which)