Вычисление числа Спирмена для увеличения подмножеств строк в цикле - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь подогнать цикл for в R, чтобы выполнить корреляции для нескольких подмножеств в кадре данных, а затем сохранить результаты в векторе.

В этом цикле у меня есть фрейм данных с 2 столбцами x и y и 30 строками различных значений непрерывного измерения в каждом столбце. Процесс следует повторить 100 раз. Данные могут быть изобретены. Что мне нужно, так это вычислить относительное число Спирмена для первых пяти строк (между x и y), а затем для увеличения подмножеств (например, шестые первые строки, седьмые первые строки и т. Д.). Затем мне нужно сохранить результаты rho в векторе, который я смогу использовать в дальнейшем.

Что я имел в виду (но не работает):

sortvector <- 1:(30) 
for (i in 1:100) 
{
sortvector <- sample(sortvector, replace = F) 
xtemp <- x[sortvector] 
rho <- cor.test(xtemp,y, method="spearman")$estimate  
}

Проблема в том, что код дает мне одно значение rho для всего кадра данных, но оно мне нужно для приращений подмножеств. Как я могу получить rho для подмножеств растущих значений в цикле for? И как я могу сохранить коэффициенты в векторе, который я могу использовать потом?

Любая помощь будет высоко ценится, спасибо.

Приветствия

1 Ответ

0 голосов
/ 23 сентября 2018

Самый простой подход - преобразовать цикл for в функцию sapply, которая возвращает вектор rho в результате вашей начальной загрузки:

sortvector <- 1:(30)
x <- rnorm(30)
y <- rnorm(30)

rho <- sapply(1:100, function(i) {
  sortvector <- sample(sortvector, replace = F) 
  xtemp <- x[sortvector] 
  cor.test(xtemp, y, method = "spearman")$estimate  
})

head(rho)

Выход:

         rho          rho          rho          rho          rho          rho 
 0.014460512 -0.239599555  0.003337041 -0.126585095  0.007341491  0.264516129 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...