Я недавно сделал простой цикл for, который выводит максимальные и минимальные значения из последних 5 цен, и он отлично работает, создавая 2 новых столбца, показывающих MaxH и MinL:
for(i in 5:nrow(XBTUSD_df_s)){
XBTUSD_df_s$MaxH[i] = max(XBTUSD_df_s$Price[(i-(5-1)):i])
XBTUSD_df_s$MinL[i] = min(XBTUSD_df_s$Price[(i-(5-1)):i])
}
Затем я помещаю этоцикл for в функцию, так что я могу настроить количество цен, которые я хочу, чтобы Max и Min были основаны, например, так (строки печати были добавлены как проверка работоспособности):
FindMaxMin = function(x){
for(i in x:nrow(XBTUSD_df_s)){
XBTUSD_df_s$MaxH[i] = max(XBTUSD_df_s$Price[(i-(x-1)):i])
XBTUSD_df_s$MinL[i] = min(XBTUSD_df_s$Price[(i-(x-1)):i])
print(XBTUSD_df_s$MaxH[i])
print(XBTUSD_df_s$MinL[i])
}
}
Но после, например,:
FindMaxMin(x = 10)
Консоль выдаст все ожидаемые результаты, но, в отличие от самого цикла for, мой информационный фрейм не будет автоматически добавляться в столбцы MaxH и MinL.
Я пробовалreturn (), и я думаю, что, скорее всего, это проблема глобальной среды, но, похоже, я не могу обойти ее.
Заранее спасибо!