循环两个变量一个是另一个变量

时间:2011-09-27 01:40:26

标签: r loops conditional

我想创建一个包含两个变量i,j的循环。对于每个i等于1:24,j可以是1:24 但我不知道要做这个循环;

i=1
while(i<=24)
{
   j=seq(1,24,by=1)

   for (j in j)
   {
      cor[i,j]
   }
}
i=i+1

这是对的吗?我的输出是cor[i,j]

1 个答案:

答案 0 :(得分:2)

为了实现你的最终目标,试试......

cor(myMatrix)

结果是一个矩阵,其中包含myMatrix中所有列的所有相关性。

如果您想尝试按照自己的方式进行操作,最好使用combn生成包含所有项目组合的矩阵。尝试组合(1:4,2)并查看一个小例子的样子。对于24列的示例,使用for循环遍历所有组合的最佳方法是...

myMatrix <- matrix(rnorm(240), ncol = 24)
myIndex <- combn(1:24,2)
for(i in ncol(myIndex)){
    temp <- cor(myMatrix[,myIndex[1,i]],myMatrix[,myIndex[2,i]])
    print(c(myIndex[,i],temp))
}

所以,可以在R中使用for循环来实现它,你永远不会这样做。

(而这整个答案是基于对你实际想要完成的事情的疯狂猜测,因为问题和你的评论很难弄明白)