我有一个大数据集,X有58140列,填充了1或0
我想根据数据集中58139列的信息创建一个58139 x 58139矩阵。
对于矩阵中的每个Aij
,我想找到一些公共行的数量,这些行包含来自X的列i+1
和列J+1
的值1。
我想我可以通过sum(X[[2]]+X[[3]] == 2)
为矩阵的A12
元素执行此操作。
剩下的唯一问题是在矩阵中编码矩阵的方法。
答案 0 :(得分: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