R功能用于基质不同

时间:2014-10-25 08:46:28

标签: r matrix difference

我有一个包含90个向量,长度为2048条记录的矩阵,我想用1:90的每个向量区分每个向量1:90。 结果将是90个矩阵,其中90个向量包含每个区分的结果。

我该怎么做?

我的试验是这样的:矩阵[1:90] - 矩阵[1:90],但结果只有1个矩阵,只有0,因为有一个简单的区分相同的矩阵。

先谢谢

1 个答案:

答案 0 :(得分:0)

尝试

lst <- lapply(seq_len(ncol(m1)), function(i) m1[,i]-m1)
length(lst)
#[1] 90
dim(lst[[1]])
#[1] 2048   90

或者

lst2 <- Map(`-`, as.data.frame(m1), list(m1))
length(lst2)
#[1] 90

数据

set.seed(24)
 m1 <- matrix(sample(1:50, 90*2048, replace=TRUE), ncol=90)