-1
У меня есть эта двойная работа цикла:Оптимизировать двойную петлю в R
for (i in 1:nrow(doe)) {
for (j in 1:nrow(rsm)) {
if (rsm[j,2] == doe[i,2] & rsm[j,3] == doe[i,3] & rsm[j,4] == doe[i,4]) {
out <- cbind(doe[i,6], rsm[j,6])
matching_out <- rbind(matching_out, out)
break
}
}
}
Как вы можете видеть, что я должен соответствовать три столбцу вместе два набора данных (# 2, 3, 4 в данном случае), а затем cbind
столбец 6 двух кадров данных в другом.
Вопрос в том, что это довольно медленно, как я могу его оптимизировать? Полагаю, я мог бы использовать подход, похожий на apply
, но я не могу понять.
Взгляните на dplyr-х [присоединяется] (https://cran.r-project.org/web/packages/dplyr /vignettes/two-table.html). – Tutuchan
Попробуйте сделать воспроизводимый и пример и показать желаемый результат. –
Основным узким местом здесь является строка 'matching_out <- rbind (matching_out, out)'. Взгляните на раздел 2 http://www.burns-stat.com/pages/Tutor/R_inferno.pdf – konvas