Post date: Aug 03, 2017 7:23:1 PM
R-script to backfill suborder and order of insects given the family name:
#family backfilling:
for(i in 1:length(dat[,6])){
#true bugs
if(any(dat[i, 6] == c("Cicadellidae", "Membracidae", "Cercopidae"))){
dat[i, 5] <- "Auchenorrhyncha"
dat[i, 4] <- "Hemiptera"
} else if(any(dat[i, 6] == c("Nabidae", "Reduviidae", "Miridae", "Tingidae", "Scutelleridae", "Penatomidae", "Pentatomoidea", "Alydidae"))){
dat[i, 5] <- "Heteroptera"
dat[i, 4] <- "Hemiptera"
} else if(any(dat[i, 6] == c("Aphididae", "Psylloidea"))){
dat[i, 5] <- "Sternorrhyncha"
dat[i, 4] <- "Hemiptera"
#wasps
} else if(any(dat[i, 6] == c("Braconidae", "Ichneumonidae", "Chalcidoidea"))){
dat[i, 5] <- "Parasitica"
dat[i, 4] <- "Hymenoptera"
} else if(any(dat[i, 6] == c("Tenthredinidae"))){
dat[i, 5] <- "Symphyta"
dat[i, 4] <- "Hymenoptera"
} else if(any(dat[i, 6] == c("Vespidae", "Sphecidae", "Pompilidae", "Apidae", "Crabronidae", "Megachylidae", "Halictidae", "Formicidae", "Apoidea", "Chrysididae"))){
dat[i, 5] <- "Aculeata"
dat[i, 4] <- "Hymenoptera"
#beetles
} else if(any(dat[i, 6] == c("Curculionidae", "Chrysomelidae", "Cerambycidae", "Coccinellidae", "Meloidae", "Cleridae", "Tenebrionidae", "Elateridae", "Buprestidae", "Scarabaeidae", "Phalacridae"))){
dat[i, 5] <- "Polyphaga"
dat[i, 4] <- "Coleoptera"
} else if(any(dat[i, 6] == c("Carabidae"))){
dat[i, 5] <- "Adephaga"
dat[i, 4] <- "Coleoptera"
#butterflies/moths
} else if(any(dat[i, 6] == c("Hesperiidae"))){
dat[i, 5] <- "Papilionoidea"
dat[i, 4] <- "Lepidoptera"
} else if(any(dat[i, 6] == c("Geometridae"))){
dat[i, 5] <- "Geometroidea"
dat[i, 4] <- "Lepidoptera"
#spiders
} else if(any(dat[i, 6] == c("Salticidae", "Thomisidae"))){
dat[i, 5] <- "Araneomorphae"
dat[i, 4] <- "Araneae"
#grasshoppers etc.
} else if(any(dat[i, 6] == c("Acrididae"))){
dat[i, 5] <- "Caelifera"
dat[i, 4] <- "Orthoptera"
} else if(any(dat[i, 6] == c("Gryllidae"))){
dat[i, 5] <- "Ensifera"
dat[i, 4] <- "Orthoptera"
#flies
} else if(any(dat[i, 6] == c("Bibionidae", "Muscidae", "Calliphoridae", "Chloropidae"))){
dat[i, 5] <- "Brachycera"
dat[i, 4] <- "Diptera"
} else if(any(dat[i, 6] == c("Culicidae", "Tipulidae", "Chironomidae"))){
dat[i, 5] <- "Nematocera"
dat[i, 4] <- "Diptera"
}
}
#suborder backfilling:
for(i in 1:length(dat[,6])){
if(dat[i, 4] == ""){
if(any(dat[i, 5] == c("Auchenorrhyncha", "Sternorrhyncha", "Heteroptera"))){
dat[i, 4] <- "Hemiptera"
} else if(any(dat[i, 5] == c("Polyphaga", "Adephaga"))){
dat[i, 4] <- "Coleoptera"
} else if(any(dat[i, 5] == c("Parasitica", "Symphyta", "Aculeata"))){
dat[i, 4] <- "Hymenoptera"
} else if(any(dat[i, 5] == c("Brachycera", "Nematocera"))){
dat[i, 4] <- "Diptera"
} else if(any(dat[i, 5] == c("Polyphaga", "Adephaga"))){
dat[i, 4] <- "Coleoptera"
}
}
}
#double check there are no new families etc. that need to be added to script:
which(dat[,4] == "" & dat[, 5] != "")
which(dat[,5] == "" & dat[, 6] != "")