【发布时间】:2014-01-07 11:33:26
【问题描述】:
我有一些复杂的数据框操作要做,但我不知道该怎么做。
这是我的数据框的一部分:
YEAR RN DATE NOM SITE LONG SP SUMNB NB100
1 2011 RNN027 15056 ESTAGNOL RNN027-Estagnol 02 310 Anthocharis cardamines (Linnaeus, 1758) 1 0.3225806
2 2011 RNN027 15075 ESTAGNOL RNN027-Estagnol 02 310 Anthocharis cardamines (Linnaeus, 1758) 1 0.3225806
3 2003 RNN027 12166 ESTAGNOL RNN027-Estagnol 03 330 Anthocharis cardamines (Linnaeus, 1758) 2 0.6060606
4 2006 RNN027 13252 ESTAGNOL RNN027-Estagnol 03 330 Anthocharis cardamines (Linnaeus, 1758) 2 0.6060606
5 2006 RNN027 13257 ESTAGNOL RNN027-Estagnol 03 330 Anthocharis cardamines (Linnaeus, 1758) 2 0.6060606
6 2005 RNN027 12895 ESTAGNOL RNN027-Estagnol 01 540 Anthocharis cardamines (Linnaeus, 1758) 2 0.3703704
7 2005 RNN027 12910 ESTAGNOL RNN027-Estagnol 01 540 Anthocharis cardamines (Linnaeus, 1758) 2 0.3703704
8 2011 RNN027 15075 ESTAGNOL RNN027-Estagnol 01 540 Anthocharis cardamines (Linnaeus, 1758) 1 0.1851852
9 2008 RNN027 14120 ESTAGNOL RNN027-Estagnol 05 960 Anthocharis cardamines (Linnaeus, 1758) 2 0.2083333
10 2011 RNN027 15065 ESTAGNOL RNN027-Estagnol 05 960 Anthocharis cardamines (Linnaeus, 1758) 1 0.1041667
11 2011 RNN027 15075 ESTAGNOL RNN027-Estagnol 05 960 Anthocharis cardamines (Linnaeus, 1758) 1 0.1041667
12 2007 RNN027 13679 ESTAGNOL RNN027-Estagnol 05 960 Apatura ilia (Denis & Schifferm�ller, 1775) 2 0.2083333
13 2004 RNN027 12573 ESTAGNOL RNN027-Estagnol 06 260 Aporia crataegi (Linnaeus, 1758) 2 0.7692308
14 2005 RNN027 12917 ESTAGNOL RNN027-Estagnol 06 260 Aporia crataegi (Linnaeus, 1758) 2 0.7692308
15 2006 RNN027 13301 ESTAGNOL RNN027-Estagnol 06 260 Aporia crataegi (Linnaeus, 1758) 2 0.7692308
这个 DF 汇编了一个时期 (YEAR) 中每一年在一堆站点 (SITE) 中对物种 (SP) 的观察。
我需要生成虚拟行以进一步计算丰度指数。对于每个现有的 YEAR*SITE*SP 组合,我需要一些虚拟行。我坚持“现有”,因为 SP 列表每年*站点都不同,我的意思是我不知道每个子集的 SP 向量的长度。
这是复杂化的第一步: 为了计算我的丰度指数,我需要通过搜索每个 YEAR*SITE 子集的第一个和最后一个日期来确定协议周期,无论物种如何。因此,为每个子集找到两个日期。
第二步: 在一个子集中,对于子集的每个 X 物种,我需要使用在第一步中找到的第一个和最后一个日期创建两行。这些行的格式必须与输入数据框(9 行)相同。因此,YEAR、RN、SITE 列将由正确的值(当前年份和站点组合)填充。 DATE 列由协议的第一个日期和最后一个日期填充,SP 由 X 物种名称填充,最后 SUMNB 和 NB100 设置为零(虚拟观察)。
我的意思是创建一个包含所有这些虚拟行(新的虚拟观察)的新数据框,以进一步将其与我的输入数据框合并。
以下是子集 YEAR=i 和 SITE=y 中名为 1 和 2 的两个物种的虚拟行示例:
YEAR RN DATE NOM SITE LONG SP SUMNB NB100
1 YEAR i RNN027 FIRST DATE ESTAGNOL SITE y 310 SPECIES 1 0 0
2 YEAR i RNN027 LAST DATE ESTAGNOL SITE y 310 SPECIES 1 0 0
3 YEAR i RNN027 FIRST DATE ESTAGNOL SITE y 310 SPECIES 2 0 0
4 YEAR i RNN027 LAST DATE ESTAGNOL SITE y 310 SPECIES 2 0 0
以下是我认为必要的步骤:
- 1- 创建一个空数据框以收集行
- 2- 子集 YEAR*SITE 组合(可能是 applyfunction 或 function call
- 3- 子集的最小和最大 DATE 值
- 4- 为每个子集执行一个 for 循环(1 到 SP 列表的长度)
- 5- 在循环中,创建两行,从输入 DF 收集数据,以便用向量的当前值填充所有列。必须在最短和最长日期内完成。
- 6- 用输出填充空数据框。
我希望它足够清楚!如果有必要,我会解释更多。
感谢您的帮助!
编辑:这是我的数据集前 50 行的 dput,但它是很长的代码块:
> dput(head(AGG100,50))
structure(list(YEAR = structure(c(18L, 18L, 10L, 13L, 13L, 12L,
12L, 18L, 15L, 18L, 18L, 14L, 11L, 12L, 13L, 16L, 16L, 17L, 17L,
17L, 12L, 12L, 12L, 13L, 13L, 13L, 18L, 13L, 12L, 12L, 12L, 12L,
13L, 13L, 13L, 14L, 14L, 15L, 15L, 17L, 17L, 17L, 18L, 10L, 11L,
12L, 12L, 12L, 13L, 13L), .Label = c("1994", "1995", "1996",
"1997", "1998", "1999", "2000", "2001", "2002", "2003", "2004",
"2005", "2006", "2007", "2008", "2009", "2010", "2011", "2012"
), class = "factor"), RN = structure(c(1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L,
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("RNN027",
"RNN037", "RNN044", "RNN046", "RNN060", "RNN066", "RNN068", "RNN078",
"RNN079", "RNN089", "RNN130", "RNN144", "RNN157", "RNR117", "RNR189"
), class = "factor"), DATE = structure(c(15056, 15075, 12166,
13252, 13257, 12895, 12910, 15075, 14120, 15065, 15075, 13679,
12573, 12917, 13301, 14383, 14393, 14741, 14750, 14761, 12917,
12925, 12930, 13279, 13286, 13295, 15106, 13286, 12917, 12925,
12930, 12937, 13271, 13286, 13295, 13644, 13655, 14013, 14029,
14741, 14750, 14761, 15116, 12195, 12573, 12917, 12925, 12937,
13271, 13286), class = "Date"), NOM = structure(c(7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L,
7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L), .Label = c("ANCIENNES CARRIERES D'ORIVAL",
"BAIE DE L'AIGUILLON (VENDEE)", "CHERINE", "COMBE LAVAUX-JEAN ROLAND",
"COTE DE MANCY", "Espace protégé - code", "ESTAGNOL", "GRAND PIERRE ET VITAIN",
"ILE DE LA PLATIERE", "LAC DE REMORAY", "MARAIS DE LAVOURS",
"PETITE CAMARGUE ALSACIENNE", "PINAIL", "RAMIERES DU VAL DE DROME",
"RAVIN DE VALBOIS", "TOURBIERE DES DAUGES"), class = "factor"),
SITE = structure(c(3L, 3L, 4L, 4L, 4L, 2L, 2L, 2L, 6L, 6L,
6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 3L, 3L, 3L, 3L, 3L,
3L, 3L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 5L, 5L, 5L, 5L, 5L, 5L, 5L), .Label = c("Libellé du site",
"RNN027-Estagnol 01", "RNN027-Estagnol 02", "RNN027-Estagnol 03",
"RNN027-Estagnol 04", "RNN027-Estagnol 05", "RNN027-Estagnol 06",
"RNN037-GPV 01", "RNN037-GPV 02", "RNN037-GPV 03", "RNN037-GPV 04",
"RNN037-GPV 05", "RNN044-Pinail A", "RNN044-Pinail B", "RNN044-Pinail C",
"RNN044-Pinail D", "RNN044-Pinail E", "RNN044-Pinail F",
"RNN044-Pinail G", "RNN044-Pinail I", "RNN044-Pinail J",
"RNN044-Pinail K", "RNN046-Remoray 01", "RNN046-Remoray 02",
"RNN046-Remoray 03", "RNN046-Remoray 04", "RNN046-Remoray 05",
"RNN046-Remoray 06", "RNN046-Remoray 07", "RNN046-Remoray 08",
"RNN046-Remoray 09", "RNN046-Remoray 10", "RNN060-PCA Canal",
"RNN060-PCA Heid", "RNN060-PCA Luzernière", "RNN060-PCA Mitlere-au",
"RNN060-PCA Petite Heid", "RNN066-Valbois Ourlet bas", "RNN066-Valbois Ourlet haut",
"RNN066-Valbois Pel Humbert", "RNN066-Valbois Pel Martin",
"RNN066-Valbois Pel Podgo", "RNN066-Valbois Pel Podgo corniche",
"RNN066-Valbois Pel temoin", "RNN066-Valbois Vignes parc2bas",
"RNN066-Valbois Vignes parc2haut", "RNN066-Valbois Vignes parc3bas",
"RNN066-Valbois Vignes parc3haut", "RNN068-Marais Lavours beon1",
"RNN068-Marais Lavours beon2", "RNN068-Marais Lavours beon3",
"RNN068-Marais Lavours beon4", "RNN068-Marais Lavours beon5",
"RNN068-Marais Lavours ceyzerieu1", "RNN068-Marais Lavours culoz1",
"RNN078-Chérine 01", "RNN078-Chérine 02", "RNN078-Chérine 03",
"RNN078-Chérine 04", "RNN078-Chérine 05", "RNN078-Chérine 06",
"RNN078-Chérine 07", "RNN078-Chérine 08", "RNN078-Chérine 09",
"RNN078-Chérine 10", "RNN078-Chérine 11", "RNN078-Chérine 12",
"RNN079-Platière 01LGRA01", "RNN079-Platière 01LGRA03", "RNN079-Platière 01LGRA04",
"RNN079-Platière 01LGRA07", "RNN079-Platière 01LGRA08", "RNN079-Platière 01LGRA11",
"RNN079-Platière 01LGRA12", "RNN079-Platière 01LPGO01", "RNN079-Platière 01LPGO02",
"RNN079-Platière 01LPGO03", "RNN079-Platière 01LPGO04", "RNN079-Platière 01LPGO05",
"RNN079-Platière 01LPGO06", "RNN079-Platière 01LPGO07", "RNN079-Platière 01LPOV01",
"RNN079-Platière 01LPOV02", "RNN079-Platière 01LPOV03", "RNN079-Platière 01LPOV04",
"RNN079-Platière 01LPOV05", "RNN079-Platière 01LPOV06", "RNN089-Ramières 24",
"RNN089-Ramières 25", "RNN089-Ramières 26", "RNN089-Ramières 27",
"RNN089-Ramières 35", "RNN089-Ramières 36", "RNN089-Ramières 37",
"RNN089-Ramières 43", "RNN089-Ramières 46", "RNN089-Ramières 47",
"RNN130-Baie Aiguillon Charron-Casiers-vase", "RNN130-Baie Aiguillon Charron-Mizottes-Chaînes",
"RNN130-Baie Aiguillon Charron-Pd-Digue-mer", "RNN130-Baie Aiguillon Triaize-Mizottes",
"RNN130-Baie Aiguillon Triaize-Pd-Digue-1", "RNN130-Baie Aiguillon Triaize-Pd-Digue-2",
"RNN144-Dauges 01", "RNN144-Dauges 02", "RNN144-Dauges 03",
"RNN144-Dauges 04", "RNN144-Dauges 05", "RNN144-Dauges 06",
"RNN144-Dauges 07", "RNN144-Dauges 08", "RNN144-Dauges 09",
"RNN144-Dauges 10", "RNN144-Dauges 11", "RNN144-Dauges 12",
"RNN144-Dauges 13", "RNN144-Dauges 14", "RNN144-Dauges 15",
"RNN157-Combe Lavaux 01 Sentier des crêtes", "RNN157-Combe Lavaux 02 Sentier des dalles",
"RNN157-Combe Lavaux 03 Plain des Essoyottes partie humide",
"RNN157-Combe Lavaux 04 Plain des Essoyottes partie sèches",
"RNN157-Combe Lavaux 05 Pelouses de Fontenottes", "RNN157-Combe Lavaux 06 Friches parc de nuit",
"RNN157-Combe Lavaux 07 Friches", "RNN157-Combe Lavaux 08 Friches ouverture ONF",
"RNN157-Combe Lavaux 09 Haut du Champ Sement", "RNN157-Combe Lavaux 10 Bas du Champ Sement",
"RNR117-TRMANCY 01", "RNR117-TRMANCY 02", "RNR117-TRMANCY 03",
"RNR117-TRMANCY 04", "RNR117-TRMANCY 05", "RNR117-TRMANCY 06",
"RNR189-RNR_TRACO_01", "RNR189-RNR_TRACO_02", "RNR189-RNR_TRACO_03",
"RNR189-RNR_TRACO_04", "RNR189-RNR_TRACO_05", "RNR189-RNR_TRACO_06a",
"RNR189-RNR_TRACO_06b", "RNR189-RNR_TRACO_07", "RNR189-RNR_TRACO_08",
"RNR189-RNR_TRACO_09a", "RNR189-RNR_TRACO_09b", "RNR189-RNR_TRACO_10",
"RNR189-RNR_TRACO_11", "RNR189-RNR_TRACO_12", "RNR189-RNR_TRACO_13",
"RNR189-RNR_TRACO_14", "RNR189-RNR_TRACO_15"), class = "factor"),
LONG = c(310, 310, 330, 330, 330, 540, 540, 540, 960, 960,
960, 960, 260, 260, 260, 260, 260, 260, 260, 260, 310, 310,
310, 310, 310, 310, 310, 330, 540, 540, 540, 540, 540, 540,
540, 540, 540, 540, 540, 540, 540, 540, 540, 710, 710, 710,
710, 710, 710, 710), SP = structure(c(2L, 2L, 2L, 2L, 2L,
2L, 2L, 2L, 2L, 2L, 2L, 4L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L,
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L,
8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L, 8L
), .Label = c("Aglais urticae (Linnaeus, 1758)", "Anthocharis cardamines (Linnaeus, 1758)",
"Anthocharis euphenoides Staudinger, 1869", "Apatura ilia (Denis & Schiffermüller, 1775)",
"Apatura iris (Linnaeus, 1758)", "Aphantopus hyperanthus (Linnaeus, 1758)",
"Aphantopus hyperantus (Linnaeus, 1758)", "Aporia crataegi (Linnaeus, 1758)",
"Araschnia levana (Linnaeus, 1758)", "Arethusana arethusa (Denis & Schiffermüller, 1775)",
"Argynnis adippe (Denis & Schiffermüller, 1775)", "Argynnis aglaja (Linnaeus, 1758)",
"Argynnis paphia (Linnaeus, 1758)", "Argynnis paphia paphia (Linnaeus, 1758)",
"Aricia agestis (Denis & Schiffermüller, 1775)", "Aricia agestis D., 1775",
"Boloria dia (Linnaeus, 1767)", "Boloria euphrosyne (Linnaeus, 1758)",
"Boloria selene (Denis & Schiffermüller, 1775)", "Brenthis daphne (Bergsträsser, 1780)",
"Brenthis ino (Rottemburg, 1775)", "Brintesia circe (Fabricius, 1775)",
"Callophrys rubi (Linnaeus, 1758)", "Carcharodus alceae (Esper, 1780)",
"Carcharodus floccifera (Zeller, 1847)", "Carcharodus Hübner, 1819",
"Carcharodus lavatherae (Esper, 1783)", "Carterocephalus palaemon (Pallas, 1771)",
"Celastrina argiolus (Linnaeus, 1758)", "Charaxes jasius (Linnaeus, 1767)",
"Chazara briseis (Linnaeus, 1764)", "Cinclidia phoebe (Denis & Schiffermüller, 1775)",
"Clossiana dia (Linnaeus, 1767)", "Clossiana euphrosyne (Linnaeus, 1758)",
"Clossiana selene (Denis & Schiffermüller, 1775)", "Coenonympha arcania (Linnaeus, 1761)",
"Coenonympha dorus (Esper, 1782)", "Coenonympha glycerion (Borkhausen, 1788)",
"Coenonympha Hübner, 1819", "Coenonympha oedippus (Fabricius, 1787)",
"Coenonympha pamphilus (Linnaeus, 1758)", "Coenonympha tullia (Müller, 1764)",
"Colias alfacariensis Ribbe, 1905", "Colias crocea Geoffroy, 1785",
"Colias croceus (Fourcroy, 1785)", "Colias Fabricius, 1807",
"Colias hyale (Linnaeus, 1758)", "Colias palaeno (Linnaeus, 1761)",
"Colias PC (hyale / alfacariensis) #complexe", "Cupido alcetas (Hoffmannsegg, 1804)",
"Cupido argiades (Pallas, 1771)", "Cupido minimus (Fuessly, 1775)",
"Cupido osiris (Meigen, 1829)", "Cyaniris semiargus (Rottemburg, 1775)",
"Cyaniris semiargus (Rottemburg, 1775) (doublon1)", "Cynthia cardui (Linnaeus, 1758)",
"Diacrisia sannio (Linnaeus, 1758)", "Didymaeformia didyma (Esper, 1778)",
"Erebia aethiops (Esper, 1777)", "Erebia euryale (Esper, 1805)",
"Erebia ligea (Linnaeus, 1758)", "Erebia medusa (Denis & Schiffermüller, 1775)",
"Erebia meolans (de Prunner, 1798)", "Erynnis tages (Linnaeus, 1758)",
"Euchloe crameri Butler, 1869", "Euchloe PC (ausonia / simplonia) #complexe",
"Euclidia glyphica (Linnaeus, 1758)", "Euphydryas aurinia (Rottemburg, 1775)",
"Euplagia quadripunctaria (Poda, 1761)", "Everes alcetas (Hoffmannsegg, 1804)",
"Everes argiades (Pallas, 1771)", "Fabriciana adippe (Denis & Schiffermüller, 1775)",
"Glaucopsyche alcon (Denis & Schiffermüller, 1775)", "Glaucopsyche alexis (Poda, 1761)",
"Glaucopsyche arion (Linnaeus, 1758)", "Glaucopsyche melanops (Boisduval, 1828)",
"Glaucopsyche nausithous (Bergsträsser, 1779)", "Glaucopsyche teleius (Bergsträsser, 1779)",
"Gonepteryx cleopatra (Linnaeus, 1767)", "Gonepteryx rhamni (Linnaeus, 1758)",
"Hamearis lucina (Linnaeus, 1758)", "Heodes tityrus (Poda, 1761)",
"Hesperia comma (Linnaeus, 1758)", "Hesperia Fabricius, 1793",
"Hesperiidae Latreille, 1809", "Heteropterus morpheus (Pallas, 1771)",
"Hipparchia C (alcyone / genava / fagi) #complexe", "Hipparchia fagi (Scopoli, 1763)",
"Hipparchia fidia (Linnaeus, 1767)", "Hipparchia genava (Fruhstorfer, 1908)",
"Hipparchia semele (Linnaeus, 1758)", "Hyles euphorbiae (Linnaeus, 1758)",
"Hyponephele lupinus (O. Costa, 1836)", "Inachis io (Linnaeus, 1758)",
"Iphiclides podalirius (Linnaeus, 1758)", "Iphiclides podalirius (Scopoli, 1763)",
"Issoria lathonia (Linnaeus, 1758)", "Ladoga camilla (Linnaeus, 1764)",
"Lampides boeticus (Linnaeus, 1767)", "Lasiommata C (megera / maera) #complexe",
"Lasiommata maera (Linnaeus, 1758)", "Lasiommata megera (Linnaeus, 1767)",
"Leptidea Billberg, 1820", "Leptidea C (sinapis / reali) #complexe",
"Leptidea sinapis (Linnaeus, 1758)", "Leptotes pirithous (Linnaeus, 1767)",
"Limenitis camilla (Linnaeus, 1764)", "Limenitis Fabricius, 1807",
"Limenitis populi (Linnaeus, 1758)", "Limenitis reducta Staudinger, 1901",
"Lopinga achine (Scopoli, 1763)", "Lycaena alciphron (Rottemburg, 1775)",
"Lycaena dispar (Haworth, 1802)", "Lycaena helle (Denis & Schiffermüller, 1775)",
"Lycaena hippothoe (Linnaeus, 1761)", "Lycaena phlaeas (Linnaeus, 1761)",
"Lycaena tityrus (Poda, 1761)", "Lycaenidae Leach, 1815",
"Macroglossum stellatarum (Linnaeus, 1758)", "Maculinea alcon (Denis & Schiffermüller, 1775)",
"Maculinea arion (Linnaeus, 1758)", "Maculinea Eecke, 1915",
"Maculinea nausithous (Bergsträsser, 1779)", "Maculinea teleius (Bergsträsser, 1779)",
"Maniola jurtina (Linnaeus, 1758)", "Melanargia arge (Sulzer, 1776)",
"Melanargia galathea (Linnaeus, 1758)", "Melanargia lachesis (Hübner, 1790)",
"Melanargia occitanica (Esper, 1793)", "Melitaea athalia (Rottemburg, 1775)",
"Melitaea cinxia (Linnaeus, 1758)", "Melitaea diamina (Lang, 1789)",
"Melitaea didyma (Esper, 1778)", "Melitaea Fabricius, 1807",
"Melitaea parthenoides Keferstein, 1851", "Melitaea phoebe (Denis & Schiffermüller, 1775)",
"Mellicta", "Mellicta athalia (Rottemburg, 1775)", "Mellicta C (athalia / deione / parthenoides) #complexe",
"Mellicta parthenoides (Keferstein, 1851)", "Mesoacidalia aglaja (Linnaeus, 1758)",
"Minois dryas (Scopoli, 1763)", "Neohipparchia statilinus (Hufnagel, 1766)",
"Neozephyrus quercus (Linnaeus, 1758)", "Nom latin du taxon avec descripteur",
"Nymphalis antiopa (Linnaeus, 1758)", "Nymphalis polychloros (Linnaeus, 1758)",
"Ochlodes sylvanus (Esper, 1777)", "Ochlodes venatus (Bremer & Grey, 1853)",
"Ochlodes venatus faunus (Turati, 1905)", "Palaeochrysophanus hippothoe Linne, 1761",
"Papilio machaon Linnaeus, 1758", "Pararge aegeria (Linnaeus, 1758)",
"Pieris 2 (rapae / mannii / napi) #complexe", "Pieris brassicae (Linnaeus, 1758)",
"Pieris mannii (Mayer, 1851)", "Pieris napi (Linnaeus, 1758)",
"Pieris napi / rapae #complexe", "Pieris PC (rapae / mannii) #complexe",
"Pieris rapae (Linnaeus, 1758)", "Pieris Schrank, 1801",
"Plebeius agestis (Denis & Schiffermüller, 1775)", "Plebeius argus (Linnaeus, 1758)",
"Plebeius argyrognomon (Bergsträsser, 1779)", "Plebejus argus (Linnaeus, 1758)",
"Plebejus argyrognomon (Bergsträsser, 1779)", "Plebejus idas (Linnaeus, 1761)",
"Plebejus Kluk, 1802", "Polygonia c-album (Linnaeus, 1758)",
"Polyommatus bellargus (Rottemburg, 1775)", "Polyommatus C (coridon / hispana) #complexe",
"Polyommatus coridon (Poda, 1761)", "Polyommatus escheri (Hübner, 1823)",
"Polyommatus icarus (Rottemburg, 1775)", "Polyommatus Latreille, 1804",
"Polyommatus semiargus (Rottemburg, 1775)", "Polyommatus thersites (Cantener, 1835)",
"Pontia daplidice (Linnaeus, 1758)", "Pseudopanthera macularia (Linnaeus, 1758)",
"Pseudophilotes baton (Bergsträsser, 1779)", "Pseudotergumia fidia (Linnaeus, 1767)",
"Pyrgus 1 C (malvae / malvoides) #complexe", "Pyrgus 2 C (armoricanus / foulquieri / alveus / onopordi) #complexe",
"Pyrgus 3 C (serratulae / carlinae / cirsii) #complexe",
"Pyrgus armoricanus (Oberthür, 1910)", "Pyrgus Hübner, 1819",
"Pyrgus malvae (Linnaeus, 1758)", "Pyrgus serratulae (Rambur, 1839)",
"Pyronia bathseba (Fabricius, 1793)", "Pyronia cecilia (Vallantin, 1894)",
"Pyronia tithonus (Linnaeus, 1767)", "Pyronia tithonus (Linnaeus, 1771)",
"Quercusia quercus (Linnaeus, 1758)", "Satyridae", "Satyrium acaciae (Fabricius, 1787)",
"Satyrium esculi (Hübner, 1804)", "Satyrium ilicis (Esper, 1779)",
"Satyrium pruni (Linnaeus, 1758)", "Satyrium spini (Denis & Schiffermüller, 1775)",
"Satyrium w-album (Knoch, 1782)", "Smerinthus ocellatus (Linnaeus, 1758)",
"Speyeria aglaja (Linnaeus, 1758)", "Spialia sertorius (Hoffmannsegg, 1804)",
"Thecla betulae (Linnaeus, 1758)", "Thymelicus acteon (Rottemburg, 1775)",
"Thymelicus acteon / lineolus / sylvestris #complexe", "Thymelicus C (sylvestris / lineolus) #complexe",
"Thymelicus Hübner, 1819", "Thymelicus lineola (Ochsenheimer, 1808)",
"Thymelicus sylvestris (Poda, 1761)", "Vanessa atalanta (Linnaeus, 1758)",
"Vanessa cardui (Linnaeus, 1758)", "Zerynthia polyxena (Denis & Schiffermüller, 1775)",
"Zygaena carniolica (Scopoli, 1763)", "Zygaena ephialtes (Linnaeus, 1767)",
"Zygaena erythrus (Hübner, 1806)", "Zygaena Fabricius, 1775",
"Zygaena fausta (Linnaeus, 1767)", "Zygaena filipendulae (Linnaeus, 1758)",
"Zygaena hilaris Ochsenheimer, 1808", "Zygaena lonicerae (Scheven, 1777)",
"Zygaena loti (Denis & Schiffermüller, 1775)", "Zygaena occitanica (Villers, 1789)",
"Zygaena purpuralis (Brünnich, 1763)", "Zygaena sarpedon (Hübner, 1790)",
"Zygaena transalpina (Esper, 1780)", "Zygaena trifolii (Esper, 1783)",
"Zygaena viciae (Denis & Schiffermüller, 1775)"), class = "factor"),
SUMNB = c(1, 1, 2, 2, 2, 2, 2, 1, 2, 1, 1, 2, 2, 2, 2, 2,
2, 1, 2, 1, 6, 6, 4, 4, 6, 2, 1, 6, 10, 6, 12, 2, 6, 10,
2, 4, 2, 2, 2, 2, 11, 1, 1, 2, 2, 6, 2, 2, 4, 2), NB100 = c(0.32258064516129,
0.32258064516129, 0.606060606060606, 0.606060606060606, 0.606060606060606,
0.37037037037037, 0.37037037037037, 0.185185185185185, 0.208333333333333,
0.104166666666667, 0.104166666666667, 0.208333333333333,
0.769230769230769, 0.769230769230769, 0.769230769230769,
0.769230769230769, 0.769230769230769, 0.384615384615385,
0.769230769230769, 0.384615384615385, 1.93548387096774, 1.93548387096774,
1.29032258064516, 1.29032258064516, 1.93548387096774, 0.645161290322581,
0.32258064516129, 1.81818181818182, 1.85185185185185, 1.11111111111111,
2.22222222222222, 0.37037037037037, 1.11111111111111, 1.85185185185185,
0.37037037037037, 0.740740740740741, 0.37037037037037, 0.37037037037037,
0.37037037037037, 0.37037037037037, 2.03703703703704, 0.185185185185185,
0.185185185185185, 0.28169014084507, 0.28169014084507, 0.845070422535211,
0.28169014084507, 0.28169014084507, 0.563380281690141, 0.28169014084507
)), .Names = c("YEAR", "RN", "DATE", "NOM", "SITE", "LONG",
"SP", "SUMNB", "NB100"), row.names = c(NA, 50L), class = "data.frame")
【问题讨论】:
-
请使用
dput提供可重现的示例。 -
您对自己想做的事情有非常具体的想法。但是,也许最好退后一步,让其他人为您的实际目标(丰度指数)选择不同(更有效)的方式。我建议相应地修改您的问题。如果你这样做,你应该遵循@SvenHohenstein 的建议。有关可重现示例的更多信息,请参阅FAQ。
-
@Roland:我只是提供一些关于我将如何进行的想法,而不是必须遵循的步骤。由于我的问题有点难以理解,所以我认为这些步骤并不是没用的。
-
但是你不告诉我们,丰度指数是怎么计算的。只是关于
for循环的一些内容,大多数有经验的 R 用户不会将其用于此类任务。相反,split-apply-combine approach(在很多不同的功能和包中实现)可能应该用于解决您的问题。 -
@Roland:我没有解释如何计算索引,因为我还在格式化步骤。由于索引使用时差,我不得不在观察前后添加虚拟数据,以免低估索引。计算索引完全是另一个问题。现在感谢 BrodieG,我可以处理公式而不是数据操作。还是谢谢!
标签: r