我有一個複雜的多部分問題。如果我沒有說清楚我的道歉。我也是一個相當新手的R用戶,所以如果這看起來很簡單,請原諒我。 我想計算鯨魚潛水數據和獵物分佈數據的託管索引。這需要:計算大型數據集R的代位索引
- 計算潛水數據鯨深度的BY DIVE從獵物(魚和ZOOP)數據的頻率分佈到深度箱。
- 對於每次潛水,計算重心(CG)和慣性(I)。
- 對於每個潛水,計算一個全局索引的託管(GIC)與每個獵物類型 類型。
我希望能夠寫一個函數(或一系列的功能),使得我沒有通過潛水手動分離我的數據,然後重新運行該功能,每個潛水。
示例鯨數據,其中如果潛水編號(有時爲40+潛水),潛水數等於深度並且分類與潛水類型相關,則數字。 [IMG] http://i41.tinypic.com/33vc5rs.jpg[/IMG]
深度倉來自含有獵物信息的單獨的數據集:
我有用於潛水數據作爲一個整體的工作,但需要編寫以下代碼循環或包含應用函數,以便我可以爲包含在單個文件中的每個潛水的數據運行此功能。因此,對於40次潛水的鯨魚,我需要40個鯨魚頻率,40個鯨魚CG,40個鯨魚等等。獵物分佈與每次潛水相同!最終,我想要一張包含增量GIC值列表的表格。
#bin whale dive depths
dive.cut=cut(whale,c(0 ,depths), right=FALSE)
dive.freq=table(dive.cut)
# compute CG
fish.CG=sum(depths*fish)/sum(fish)
whale.CG=sum(depths*whale.freq)/sum(whale.freq)
zoop.CG=sum(depths*zoop)/sum(zoop)
# compute Inertia
fish.I=sum((depths-fish.CG)^2*fish)/sum(fish)
whale.I=sum((depths-whale.CG)^2*whale.freq)/sum(whale.freq)
zoop.I=sum((depths-zoop.CG)^2*zoop)/sum(zoop)
#compute GIC as per
# compute delta CG
deltaCG.fish_whale=fish.CG-whale.CG
GIC.fish_whale= 1-((deltaCG.fish_whale)^2/((deltaCG.fish_whale)^2+fish.I+whale.I))
deltaCG.zoop_whale=zoop.CG-whale.CG
GIC.zoop_whale= 1-((deltaCG.zoop_whale)^2/((deltaCG.zoop_whale)^2+zoop.I+whale.I))
UPDATES 我已粘貼的示例性數據兩者獵物和鯨潛水。
獵物數據
depths fish zoop
1 5 0.00000 0.000000
2 10 0.00000 0.000000
3 15 0.00000 0.000000
4 20 21.24194 0.000000
5 25 149.51694 14.937945
6 30 170.43214 0.000000
7 35 296.93453 0.737109
8 40 16.61643 4.295556
9 45 92.68130 26.384844
10 50 50.68548 55.902301
11 55 37.47343 218.673781
12 60 32.74443 204.452678
13 65 20.62983 113.112452
14 70 13.75121 83.014457
15 75 16.15562 55.051358
16 80 22.65562 96.746271
17 85 42.99768 302.229135
18 90 16315.65099 783.868978
19 95 43006.20482 1713.133161
20 100 23476.24740 3440.034642
21 105 30513.66346 6667.914707
22 110 17411.64500 9398.790964
23 115 12127.70195 7580.233165
24 120 4526.63393 7205.768739
25 125 3328.89644 6567.175766
26 130 1864.21486 4567.446886
27 135 2202.07464 4295.772442
28 140 2719.29417 4419.903403
29 145 1710.75599 5102.689940
30 150 2033.69552 4496.121974
31 155 2796.81788 3269.193606
32 160 967.09406 2310.203528
33 165 437.30896 447.940140
34 170 193.15526 63.731336
35 175 143.88043 38.004799
36 180 406.31373 22.565211
37 185 786.30087 31.889927
38 190 1643.52542 36.580063
39 195 1665.69794 14.084152
40 200 1281.15790 0.000000
41 205 753.75309 35.343794
42 210 252.48867 0.000000
鯨數據:
Number Dive Class
1 1 95.1 F
2 1 95.9 F
3 1 95.1 F
4 1 95.9 F
5 1 96.8 F
6 1 97.2 F
7 1 96.8 F
8 2 95.5 N
9 2 94.2 N
10 3 94.7 F
11 3 94.2 F
12 3 94.2 F
13 3 95.9 F
14 3 95.9 F
15 4 93.8 F
16 4 97.7 F
17 4 99.4 F
18 4 94.7 F
19 4 92.5 F
20 4 98.1 F
21 5 97.2 N
22 5 98.5 N
23 5 95.5 N
24 5 97.2 N
25 5 98.5 N
26 5 96.4 N
27 5 94.7 N
28 5 95.5 N
我看了一下鏈接,但無法找到什麼'whale'指的是在你的代碼。你可以給更多[完整(但最小)的數據集](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)?也嘗試把它放在問題而不是鏈接。 – dardisco
對不起。我錯誤地粘貼了舊版本的代碼。在潛水深度的分檔中,「鯨魚」應該等於「潛水」。目前我不在我的辦公室計算機,因此無法訪問我的數據。如果上述說明不起作用,我會稍微模擬一些數據並重新發布。謝謝! – akbreezo