我有一个复杂的多部分问题。如果我没有说清楚,我很抱歉。我也是一个相当新手的 R 用户,如果这看起来很简陋,请原谅我。我想计算鲸鱼潜水数据和猎物分布数据的托管指数。这需要:
- 通过从猎物(鱼和动物)数据中潜水到深度箱中计算鲸鱼潜水深度数据的频率分布。
- 对于每次潜水,计算重心 (CG) 和惯性 (I)。
- 对于每次潜水,计算一个全球托管指数 (GIC) 与每种猎物类型。
我希望能够编写一个函数(或一系列函数),这样我就不必通过潜水来分离我的数据并手动为每次潜水重新运行函数。
鲸鱼数据示例,如果潜水次数(有时 40 次以上潜水),潜水等于深度,分类与潜水类型有关。[IMG] http://i41.tinypic.com/33vc5rs.jpg[/IMG]
深度箱来自包含猎物信息的单独数据集:
我有以下代码可用于整个潜水数据,但需要编写一个循环或包含一个应用函数,以便我可以为单个文件中包含的每次潜水的数据运行此代码。所以,对于 40 次潜水的鲸鱼,我需要 40 次鲸鱼频率、40 次鲸鱼 CG、40 次鲸鱼 Is 等。每次潜水的猎物分布都是相同的!最终,我想要一个包含增量 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))
更新我已经粘贴了猎物和鲸鱼潜水的示例数据。
猎物数据
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