2017-10-07 133 views
0

让我们有一个二元矩阵/数据帧:如何找到一个矩阵中的特定元素并将它们与第二个矩阵进行比较?

library("Matrix") 
df_binary <- data.frame(as.matrix(rsparsematrix(1000, 20,nnz = 800, rand.x = runif))) 
df_binary[df_binary > 0] = 1 

现在,我想创造同等价值1
如何我在R中可以做到这一点的所有元素的索引对象?

我需要类似这些条目的索引来比较二进制矩阵的条目和第二个矩阵的条目。两个矩阵的大小相同 - 如果这些信息可能很重要。

+0

也许是这样的线的东西? '(df_binary == 1,arr.ind = TRUE)' –

+0

@MikeH .:超级!那就是我正在寻找的东西 - thx! :) – Mario

+0

如果您实际上使用稀疏矩阵来保存您的数据,那么它们实际上存储了非零元素的索引。 – user20650

回答

0

如果你想有一个清单出来,你可以做沿着

list_ones <- function(df) { 
    out <- list() 

    for (col in names(df)) { 
    out[[col]] <- which(df[[col]] == 1) 
    } 

    return(out) 
} 

list_ones(df_binary) 
相关问题