У меня есть набор действительных значений (> 50k), и для каждого из них я хочу видеть, какая доля перестановленных для этого сайта больше, чем наблюдаемое значение. Я решил эту проблему, используя следующий for-loop, но, похоже, работает медленно, и мне было интересно, есть ли у кого-нибудь предложения по его оптимизации или более эффективному методу.Как сделать эту петлю R более эффективной?
Заранее благодарен!
В этом коде действительный [, 3] соответствует вектору действительных значений, матрица - результат вывода, а perm [, 3] содержит все перестановленные значения.
for (i in 1:nrow(real)) {
real[i,3] -> output[i,1]
subset(perm, perm[,1] == row.names(real[i,])) -> sims
nrow(sims[sims[,3] > significance[i,1],]) -> output[i,3]
nrow(sims) -> output[i,2]
}
Руководитель реального файла: только третий столбец имеет важное значения для этого
chr10_1012663 134.1894 130.9915 -3.197876e+00 -2.411963e-02 0
chr10_1012716 144.3250 130.9433 -1.338170e+01 -9.730331e-02 0
chr10_10160551 155.6744 138.7002 -1.697420e+01 -1.154519e-01 0
chr10_10163175 304.4715 261.5272 -4.294435e+01 -1.520394e-01 0
chr10_1018272 133.0447 133.0447 -8.930860e-08 -6.712676e-10 0
руководителя файла завивки: только третий столбец имеет важное значение, а также. Этот файл содержит 50 перестановок на каждый сайт в реальном файле.
chr10_1012663 99.94432 130.9915 3.104717e+01 2.705191e-01 1
chr10_1012716 130.94332 130.9433 -3.600817e-08 -2.749906e-10 0
chr10_10160551 138.63097 138.7002 6.921823e-02 4.991739e-04 1
chr10_10163175 261.52720 261.5272 4.579061e-08 1.750893e-10 1
Глава выходного файла: столбцы (я) реальное значение, (б) количество permuations набрал, и (III) число перестановок больше, чем реальное значение.
-3.197876e+00 50 39
-9.730331e-02 50 44
-1.154519e-01 50 48
-1.520394e-01 50 49
-6.712676e-10 50 38
Можете ли вы опубликовать минимально полезные/воспроизводимые данные проб и ожидаемый результат? Затем мы можем помочь вам с рабочим кодом. – Gopala
вы можете дать нам (небольшой) [воспроизводимый пример] (http://tinyurl.com/reproducible-000), пожалуйста? –
Можете ли вы предоставить вывод 'dput (head (real))', 'dput (head (perm))' и 'dput (head (matrix))'? Кроме того, обычно не рекомендуется указывать объекты после функций. Матрица является функцией в R, поэтому вы должны называть этот объект чем-то еще –