как человек, переходящий с Matlab, я хотел бы получить какой-либо совет для более эффективного способа найти среднее значение значений DepDelay, индексы (indxs) которых попадают в ячейки гистограммы (края). В Matlab и моем текущем сценарии R у меня есть следующие команды:
edges = seq( min(t), max(t), by = dt )
indxs = findInterval( t, edges,all.inside=TRUE )
listIndx = sort( unique( indxs ) )
n = length( edges )
avgDelay = rep( 1, n) * 0
for (i in 1 : n ){
id = listIndx[i]
jd = which( id == indxs )
if ( length(jd) > minFlights){
avgDelay[id] = mean(DepDelay[jd])
}
}
Я знаю, что использование циклов for в R потенциально чревато проблемами, но я задаю этот вопрос в интересах повышения эффективности кода.
Конечно. Несколько фрагментов соответствующих векторов:
DepDelay[1:20] = [1] -4 -4 -4 -9 -6 -7 -1 -7 -6 -7 -7 -5 -8 -3 51 -2 -1 -4 -7 -10
и связанные значения индексов:
indxs[1:20] = [1] 3 99 195 291 387 483 579 675 771 867 963 1059 1155 1251 1351 1443 1539 1635 1731 1827
minFlights = 3
Спасибо.
БСЛ
DepDelay
, чтобы сделать это воспроизводимым? - person Thomas   schedule 06.04.2015