Цикл двух переменных одна условна от другой - PullRequest
0 голосов
/ 27 сентября 2011

Я хочу сделать цикл, который содержит две переменные i,j. для каждого я равен 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 Ответ

2 голосов
/ 27 сентября 2011

Чтобы достичь своей конечной цели, попробуйте ...

cor(myMatrix)

Результатом является матрица, содержащая все корреляции всех столбцов в myMatrix.

Если вы хотите попытаться сделать то же, что и вы, лучше всего сгенерировать матрицу всех возможных комбинаций ваших предметов, используя combn. Попробуйте использовать 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))
}

Итак, возможно сделать это с помощью for цикла в R, вы никогда не сделаете это таким образом.

(и весь этот ответ основан на дикой догадке о том, чего вы на самом деле пытаетесь достичь, потому что вопрос и ваши комментарии очень трудно выяснить)

...