for()循环是否可能不以相同的顺序返回结果?

时间:2016-05-04 16:20:52

标签: r for-loop

所以我正在使用数据框运行一些驱动时间(我只发布前27行的子集),如下所示:

h_postcode  gp_postcode
CV2 2DX YO31 7WE
CV2 2DX LL57 2HH
CV2 2DX TR8 4HP
CV2 2DX YO25 6EB
CV2 2DX SA15 3AE
CV2 2DX B63 1AB
CV2 2DX SN1 1ED
CV2 2DX YO32 2LL
CV2 2DX OX4 4DH
CV2 2DX HA8 8NB
CV2 2DX NP44 1RY
CV2 2DX CV3 1EG
CV2 2DX CB2 1RG
CV2 2DX SS0 7AF
CV2 2DX S14 1PQ
CV2 2DX DY3 1LS
CV2 2DX NN11 4FE
CV2 2DX CV47 2UL
CV2 2DX CV1 5FX
CV2 2DX CV1 4FS
CV2 2DX PE28 3EU
CV2 2DX B70 0PU
CV2 2DX CV1 4JH
CV2 2DX WR2 5HL
CV2 2DX ST7 4SS
CV2 2DX PL4 7DL
CV2 2DX CV6 6DR

申请我的代码时:

# create your own 'from' and 'to' variables 
from <- drivetime$gp_postcode
to <- drivetime$h_postcode

# calculate the distance 
result <- vector("list")
for (i in 1:1000) { # could be 1:nrow(drivetime)
  result[[i]] <- try(mapdist(from[i], to[i], mode = "driving", override_limit = TRUE), silent = FALSE)
  Sys.sleep(1)
}
results <- dput(result)
res_df <- do.call(rbind, results)
res_df

但我已经意识到,有时带有驱动时间结果的结果数据框的显示顺序与初始数据的顺序不同。 例如,看起来前27行不同于最初的27行:

       from      to      m      km     miles seconds   minutes     hours
1  NG17 7LG CV2 2DX  93592  93.592  58.15807    3919  65.31667 1.0886111
2  NP20 2LB CV2 2DX 188427 188.427 117.08854    7667 127.78333 2.1297222
3  EX18 7DL CV2 2DX 308160 308.160 191.49062   11817 196.95000 3.2825000
4   HR4 8SN CV2 2DX 144135 144.135  89.56549    7044 117.40000 1.9566667
5  WS11 5JT CV2 2DX  62974  62.974  39.13204    2706  45.10000 0.7516667
6  TR14 8SN CV2 2DX 451326 451.326 280.45398   16343 272.38333 4.5397222
7    B8 3HX CV2 2DX  37435  37.435  23.26211    2145  35.75000 0.5958333
8   MK2 2EH CV2 2DX  82608  82.608  51.33261    3710  61.83333 1.0305556
9   YO8 4QH CV2 2DX 184817 184.817 114.84528    7457 124.28333 2.0713889
10  SL4 6AP CV2 2DX 158368 158.368  98.40988    6100 101.66667 1.6944444
11  BA2 3JZ CV2 2DX 199397 199.397 123.90530    8217 136.95000 2.2825000
12 DA14 4TA CV2 2DX 207877 207.877 129.17477    8159 135.98333 2.2663889
13 SA31 1EX CV2 2DX 310432 310.432 192.90244   11716 195.26667 3.2544444
14 HP21 8TR CV2 2DX 113968 113.968  70.81972    5149  85.81667 1.4302778
15  ST6 6BE CV2 2DX 112320 112.320  69.79565    4406  73.43333 1.2238889
16 LL22 8LJ CV2 2DX 236466 236.466 146.93997    8788 146.46667 2.4411111
17 RG30 6BP CV2 2DX 158082 158.082  98.23215    6458 107.63333 1.7938889
18  WA6 6RX CV2 2DX 170394 170.394 105.88283    6610 110.16667 1.8361111
19  CV4 9PN CV2 2DX  16669  16.669  10.35812    1427  23.78333 0.3963889
20   B9 5EG CV2 2DX  42486  42.486  26.40080    2102  35.03333 0.5838889
21  SY4 2DR CV2 2DX 118635 118.635  73.71979    4865  81.08333 1.3513889
22  DY9 8DJ CV2 2DX  67934  67.934  42.21419    3130  52.16667 0.8694444
23 DA12 2HU CV2 2DX 208016 208.016 129.26114    8207 136.78333 2.2797222
24  IM9 2RQ CV2 2DX 371277 371.277 230.71153   25926 432.10000 7.2016667
25  FY3 7EN CV2 2DX 236367 236.367 146.87845    8931 148.85000 2.4808333
26  M28 1LZ CV2 2DX 179386 179.386 111.47046    6818 113.63333 1.8938889
27  DY1 2BY CV2 2DX  59939  59.939  37.24609    3073  51.21667 0.8536111
28  SL6 8DS CV2 2DX 143042 143.042  88.88630    5676  94.60000 1.5766667

任何关于它为什么会发生的想法?是因为try() - 即使没有显示错误消息吗?

谢谢!

0 个答案:

没有答案