2014-12-04 54 views
0

我有一个大的数据集,X做有58140列操作的基质,填充以1或0创建从其他数据集

我想从58139列的信息创建58139 X 58139矩阵在数据集中。

对于矩阵中的每个Aij我想找到包含值1为i+1柱和柱J+1从X.

我想我能做到这一点通过sum(X[[2]]+X[[3]] == 2)A12元件共同的行数的矩阵。

剩下的唯一问题是一种方法,在矩阵码。

回答

0

您可以使用mapply。这返回一个数字向量。然后,您可以将其包装在matrix的调用中,并忽略第一行和第列。

# sample data 
set.seed(123) 
X <- data.frame(matrix(rbinom(200, 1, .5), nrow=10)) 
# 
A <- matrix(mapply(function(i, j) sum(rowSums(X[, c(i,j)])==2), 
        i=rep(1:ncol(X), ncol(X)), 
        j=rep(1:ncol(X), each=ncol(X))), 
      ncol=ncol(X))[-1, -1] 
A