Я написал цикл for, который берет группу из 5 строк из кадра данных и передает ее функции, после этого функция возвращает только одну строку после выполнения некоторых операций над этими 5 строками. Ниже приведен код:Альтернатива FOR Loop для ниже
for (i in 1:nrow(features_data1)){
if (i - start == 4){
group = features_data1[start:i,]
group <- as.data.frame(group)
start <- i+1
sub_data = feature_calculation(group)
final_data = rbind(final_data,sub_data)
}
}
Может кто-нибудь, пожалуйста, мне предложить альтернативу этому, поскольку цикл занимает много времени. Функция feature_calculation огромна.
Попробуйте сначала создать вектор, содержащий группы (tip: 'rep (1: ngroups, each = 5)', а затем посмотрите на 'tapply' –
. Скорость цикла for, вероятно, не является тем, что вас удерживает. попробуйте оптимизировать функцию 'feature_calculation()' и выделять 'final_data' перед циклом, а не выращивать его каждый раз - это включает в себя копирование всего объекта. – Miff