计算103个第一列中的每一列与106个下一个中的每一个之间的相关性,重复12次

时间:2017-02-08 11:29:12

标签: r

我有一个(144,1378)df;它由106个参数的13个实验组成。

第一组是参考组。我想计算每个106参数的corr,对于每个组,IN与第一组的关系。

即,例如,用列1计算列107的corr - >返回带有参数名称和组的结果。

然后第213列(107 + 106)的第1列为第1列......直到列1272第1列......

但我在修复前106列作为参考依据时遇到了麻烦:-(。

MK_comp_par1 <-sapply(seq(1, 1378, by=106),function(i) cor(bind_sc[,i:(i+1)], method ="kendall", use = "complete")) 

2 个答案:

答案 0 :(得分:2)

你必须要找这样的东西:

bind_sc <- matrix(replicate(144*1378, rnorm(1)), nrow = 144)
i <- seq(1, 1378, by=106) 
j <- seq(0, 105, by=1) 
Res = list()
Res <- lapply(j,function(j,i)
{ 
    cor(x=bind_sc[,j+1], y=bind_sc[,i+j], method ="kendall", use = "complete")
},i)

Res列表的[[i]]值是数据的第i列与其他实验中的相应数据之间的相关性。希望它有所帮助。

答案 1 :(得分:0)

我无法在没有示例数据的情况下对此进行测试,但它应该有效:

MK_comp_par1 <- mapply(function(x,y) cor(bind_sc[,c(x,y)], method = "kendall", 
                                         use = "complete"), seq(1, 106), seq(107, 1378))

这应该有效,因为第二个向量是第一个向量的精确倍数,因此mapply将从1开始,x每106次迭代。

请注意,这可能会为您提供长度为1272的输出列表,您可能希望将其拆分106以获得每个实验的相关矩阵列表。