Я новичок в R, и у меня есть следующий запрос. Я пытаюсь запустить цикл for. Прошло 20 минут, чтобы работать на 30 000 рядов. Я хочу запустить 4 миллиона строк. Я пробовал, и это занимает почти 3 дня. Есть ли способ минимизировать время, затрачиваемое на выполнение цикла.Время, затраченное на выполнение цикла
for(i in length(Data$CLAIM):1)
{
if(i==length(Data$CLAIM))
{
Data$Net_Claim_Amt_Calc[i]=Data$INETCLMAMT[i]
Data$GOL_Calc[i]=Data$GOL[i]
Data$GLP_Calc[i]=Data$GLP[i]
Data$NOLCLM_Calc[i]=Data$NOLCLM[i]
Data$NLPCLM_Calc[i]=Data$NLPCLM[i]
}
else
{
if(Data$CLAIM[i]==Data$CLAIM[i+1])
{
Data$Net_Claim_Amt_Calc[i]=sum(Data$INETCLMAMT[i],Data$Net_Claim_Amt_Calc[i+1])
Data$GOL_Calc[i]=Data$GOL[i]+Data$GOL_Calc[i+1]
Data$GLP_Calc[i]=Data$GLP[i]+Data$GLP_Calc[i+1]
Data$NOLCLM_Calc[i]=Data$NOLCLM[i]+Data$NOLCLM_Calc[i+1]
Data$NLPCLM_Calc[i]=Data$NLPCLM[i]+Data$NLPCLM_Calc[i+1]
}
else
{
Data$Net_Claim_Amt_Calc[i]=Data$INETCLMAMT[i]
Data$GOL_Calc[i]=Data$GOL[i]
Data$GLP_Calc[i]=Data$GLP[i]
Data$NOLCLM_Calc[i]=Data$NOLCLM[i]
Data$NLPCLM_Calc[i]=Data$NLPCLM[i]
}
}
}
вы уверены, что вы не можете векторизации? – astrosyam
Это не похоже на использование цикла 'for'. (Цикл 'for' с итерациями 4e6 в значительной степени всегда является плохой идеей в R. Обычно существуют более быстрые (векторизованные) альтернативы.) – Roland
Я никогда не использовал векторизованный ранее. можете ли вы посоветовать мне предоставить некоторые ссылки, связанные с векторизованным форматом? – Mayuri