作为一个从 Matlab 过渡的人,我希望有任何建议可以更有效地找到其索引(indxs)落在直方图箱(边缘)内的 DepDelay 值的平均值。在 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])
}
}
我知道在 R 中使用 for 循环可能是一个令人担忧的问题,但我提出这个问题是为了提高代码效率。
当然。相关向量的一些片段:
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
谢谢你。
BSL