Chapter One: An Introduction to Project Organization

Introduction: How can we maintain tractable data structures for use with phylogenetic projects?

“I just wasted five hours running an analysis on the wrong input file.”

“I can’t remember where I saved my output.”

“I accidentally overwrote my raw data.”

Many of us have probably said one or more of the above sentences. When you’re balancing multiple projects and lots of data, it can be easy to lose track of files. One of the biggest challenges to any project is placing project files in a structure that is easy for you, the scientist, to access and maintain.

This chapter will cover the basics of project organization and data organization and management. At the end of this chapter, you should be familiar with:

  1. Concept: How to store project input files, scripts and project outputs
  2. Concept: How to organize your data in a way that is reusable for you, and for others
  3. Hands-On: How to use the command line to create directories, move files and view the files that you have

Creating Project Workspaces

This book will discuss not solely the Dendropy computing library, but efficient R computation for phylogenetic analyses. In this section, we are going to address a very specific aim: setting up projects on your computer in a way that will allow you to manage your projects efficiently. We will use hands-on examples throughout this section.

When managing a project, you want to keep files together as much as possible. Doing this makes it easier to document your project, and avoid losing data files.

Create an R Project together

Make two subdirectories: code and data

These four subdirectories will all serve important purposes. Our scripts directory will house the R code we will write. We will talk in further chapters about why it is important and useful to keep all of the scripts for a single project together. For now, just know that it is.

Our data directory will house our raw data. We want our raw data to be housed on its own. If we make a mistake in how we save output files, we can always go back to our raw data and run the analysis again … so long as we have maintained the integrity of our raw data. Once we have populated our data directory with the necessary data, we do not write to it. A simple motto for this philosophy is that data are read-only.

We do, however, write to our output directory. We will talk in future chapters about using R to make readable and informative output file names. For now, just know that the results of any analysis go in the output directory.

Documentation is where we can put miscellaneous, informative files. For example, papers that you are reading for your project, cost sheets for sequencing, talk slides.

This is the basic setup all chapters of this book will rely on. This manner of file organization is very transparent: anyone looking at your file directory can understand what components of your research project are stored where. If you follow this structure, when you go to publish your paper, you can simply archive your entire project directory to meet most funders’ and journal’s guidelines for providing data and software code. And who couldn’t use a little less on their plate when it comes time to submit a paper?

Recap: Our Three Goals

So far, we have introduced two important concepts: keep files together as much as possible and data are read-only. The first principle means to keep data, output and code related to one project in one place on your computer to increase your organization. The second principle means to treat raw data as untouchable. Any outputs of analyses should be kept separate to avoid loss of data, and to ensure you can rerun any steps as needed.

In learning these two concepts, we have used hands-on commands: mkdir to create directories, ls to look at their contents and cd to navigate. We also learned to check our navigation with the pwd command and to use tab-complete to increase the efficiency of our typing.

Chapter Two: Moving From Spreadsheets to R

Introduction

“I know I made a plot of this … I just can’t remember how.”

“This looks totally different on my computer.”

“My coworker doesn’t have Excel.”

Almost everyone used a spreadsheet program to manage data at some point in our career. These graphical programs offer a clean interface to view and manage the data we work so hard to collect. But these types of programs can also introduce problems in biological workflows.

There are three main issues with using Excel and other similar programs to carry out computations:

  1. They can be black boxes. Most spreadsheet programs are closed-source, meaning that their inner workings might not be examineable by users because the source code is not available. Exceptions to this do exist, such as Open Office. Behaviors can also vary between platforms (i.e., Macintosh vs. Windows) or across versions of the software in ways that are somewhat unpredictable.
  2. You need to maintain a separate log file with your commands. As we’ll see in this section, programmatically working with data provides an inherent log of all the commands you did. As long as you provide the version number of the R distribution and any libraries you’re working with, a colleague should be able to reproduce what you did exactly. By contrast, to do this in a spreadsheet program requires either writing out exactly what data were highlighted and what options were clicked on.
  3. Reuse and batching is tricky. When you are using a spreadsheet program, you are generally performing operations on one file at a time. Many spreadsheet programs have a system, often called macros, that allows for a series of operations to be carried out in several spreadsheet files. But you often still need to click each file to open it, and start your macro. Writing code that can be reused because it explicitly lists every operation performed allows us to process large batches of files in a way that simply isn’t possible with spreadsheet programs.

In this chapter, we will discuss moving data management and analysis past the traditional spreadsheet paradigm. Along the way, we will learn about how to store data in a way that is both human- and machine-readable. Using a test dataset on ant (Formicidae) taxonomy, we will import datasets using R and begin to explore them programmatically. At the end of this chapter, you will be familiar with:

  1. Concept: How to store data and documentation in a way that is useful to you, colleagues and is machine-readable.
  2. Concept: How the Pandas R library can be used to move beyond reliance on spreadsheets.
  3. Hands-On: Commands to load libraries in the R language and to begin calling useful functions for data manipaltion.

Storing Data

When you save a file in Excel, you don’t simply save the data. You save, encoded in binary, information about cell positioning, coloring, and other document attributes. In the previous section, we mentioned that the behavior of a file loaded into a spreadsheet viewing program can vary between versions of the software. This is not because the data are changing. This is because there are often subtle changes to how the data are displayed or how statistics are calculated. These subtle changes can cause dramatically different renderings of files across versions and platforms.

All of this extraneous information also makes the file harder to read at the command line, or in R. For example, in the data directory, you will find two data files: Ants.csv and Ants.xlsx. Try looking at each in a plain text editor.

Which of these files are you able to visualize?

The Ants.csv file is stored in what is called a flat file. Flat files are plain text - they don’t contain any characters that can’t be typed with a keyboard, or viewed at the command line. Any fancy formatting in a plain text file comes from the viewer. For example, this book is written in plain text. The nice formatting you see is the result of rendering software. If you were to view this file at the command line, you would still be able to access all of the data within it. Because flat files can be read by both human and machine, they are often considered preferable to files with extensive encoding of extra information.

For the purposes of this lesson, we will show you how to get data out of spreadsheet files (such as Excel files), but we will predominantly be describing how you can avoid using these file types.

Inside each flat file, data should be organized with each row being an observation, and each column being the variables observed. If you open the Ants.csv file, you will note that each row corresponds to one fossil ant. Each column is labeled as a variable observed about the ant - taxonomy, age of the fossil and notes. Most programmatic ways of handling data assume this structure.

You will also notice that all the column names have underscores, rather than spaces. Most programming languages will assume that a space indicates the end of a name, so it’s best to avoid spaces. Lastly, notice that the data directory also contains a README. This README tells the user what data files they should expect to find when they download your data.

TR

There are many ways to process data at the command line. These range from simple methods available in UNIX to elaborate and complex libraries in R. In this section, we’ll get to know Pandas a little better. We will use R as a gateway to getting familiar with R. Once we have learned how to carry out some common spreadsheet operations, we will discuss R programming more generally in the next chapter. This is by no means an exhaustive look at the Pandas library. It is simply a teaser to show some useful ways that you might interact with data in R.

Pandas was written by Wes McKinney to facilitate efficient data processing, manipulation and plotting in R. The fundamental data type of R is a dataframe, an object containing rows and columns of data. For our Ants.csv data, the rows will be the fossil ants. The columns will be the observations (fossil minimum ages, maximum ages, and taxonomy). It’s instructive to look at an example.

?read.csv

In the command read.csv, we called the functionread.csv` out of R’s base. We haven’t provided it with any data to read, therefore, R simply told us that the function is available via Pandas to parse text.

Now we will use this function to load some data into R, via the Pandas library:

ant_data <-  read.csv('data/Ants.csv')
ant_data
##                                 specimen reference_no         subfamily
## 1                Agroecomyrmex_duisburgi        44414 Agroecomyrmecinae
## 2                  Eulithomyrmex_rugosus         4971 Agroecomyrmecinae
## 3                 Eulithomyrmex_striatus         4971 Agroecomyrmecinae
## 4                          Amblyoponinae        59088     Amblyoponinae
## 5                           Amblyoponini        53165     Amblyoponinae
## 6                      Casaleia_eocenica        43781     Amblyoponinae
## 7                       Casaleia_inversa        41286     Amblyoponinae
## 8                  Casaleia_longiventris        37344     Amblyoponinae
## 9                    Casaleia_orientalis        56094     Amblyoponinae
## 10                    Myopopone_sinensis        16579     Amblyoponinae
## 11                 Stigmatomma_electrina        44602     Amblyoponinae
## 12                   Stigmatomma_groehni        44602     Amblyoponinae
## 13                 Aneuretellus_deformis        44404       Aneuretinae
## 14                Britaneuretus_anglicus        37729       Aneuretinae
## 15                      Burmomyrma_rossi        39313       Aneuretinae
## 16             Cananeuretus_occidentalis        36535       Aneuretinae
## 17                           Mianeuretus        44418       Aneuretinae
## 18                 Mianeuretus_eocenicus        44418       Aneuretinae
## 19                 Mianeuretus_mirabilis         4971       Aneuretinae
## 20              Paraneuretus_dubovikoffi        56094       Aneuretinae
## 21              Paraneuretus_longicornis        40999       Aneuretinae
## 22               Paraneuretus_tornquisti        40999       Aneuretinae
## 23                Pityomyrmex_tornquisti        40999       Aneuretinae
## 24               Protaneuretus_succineus        40999       Aneuretinae
## 25               Archaeopone_kzylzharica        37059        Armaniinae
## 26                   Archaeopone_taylori        35238        Armaniinae
## 27                               Armania        39728        Armaniinae
## 28                      Armania_capitata        39728        Armaniinae
## 29                       Armania_curiosa        35238        Armaniinae
## 30                      Armania_pristina        39728        Armaniinae
## 31                       Armania_robusta        35238        Armaniinae
## 32                  Dolichomyrma_latipes        37059        Armaniinae
## 33                Dolichomyrma_longiceps        37059        Armaniinae
## 34                  Khetania_mandibulata        39728        Armaniinae
## 35                          Orapia_minor        38353        Armaniinae
## 36                        Orapia_rayneri        38353        Armaniinae
## 37               Poneropterus_sphecoides        35238        Armaniinae
## 38                 Pseudarmania_aberrans        35238        Armaniinae
## 39               Pseudarmania_rasnitsyni        35238        Armaniinae
## 40                   Brownimecia_clavata         5815    Brownimeciinae
## 41               Alloiomma_changweiensis        16579    Dolichoderinae
## 42              Alloiomma_differentialis        36942    Dolichoderinae
## 43              Asymphylomyrmex_balticus        40999    Dolichoderinae
## 44                                Azteca        49381    Dolichoderinae
## 45                          Azteca_alpha         5207    Dolichoderinae
## 46                        Azteca_eumeces         5207    Dolichoderinae
## 47         Chronomyrmex_medicinehatensis        47972    Dolichoderinae
## 48               Ctenobethylus_goepperti        38999    Dolichoderinae
## 49                        Dolichoderinae        34859    Dolichoderinae
## 50                          Dolichoderus         8673    Dolichoderinae
## 51  Dolichoderus_(Hypoclinea)_passalomma        44557    Dolichoderinae
## 52                 Dolichoderus_affectus        38999    Dolichoderinae
## 53                 Dolichoderus_antiquus         4971    Dolichoderinae
## 54                 Dolichoderus_balticus        38999    Dolichoderinae
## 55              Dolichoderus_brevicornis        44557    Dolichoderinae
## 56              Dolichoderus_brevipalpis        44558    Dolichoderinae
## 57              Dolichoderus_brevipennis        44558    Dolichoderinae
## 58                  Dolichoderus_bruneti        38999    Dolichoderinae
## 59               Dolichoderus_caribbaeus         5207    Dolichoderinae
## 60                 Dolichoderus_coquandi        38999    Dolichoderinae
## 61                 Dolichoderus_cornutus        44414    Dolichoderinae
## 62                 Dolichoderus_dibolius         5207    Dolichoderinae
## 63                 Dolichoderus_dlusskyi        55770    Dolichoderinae
## 64                  Dolichoderus_elegans        40999    Dolichoderinae
## 65                  Dolichoderus_evolans        16579    Dolichoderinae
## 66                Dolichoderus_explicans        38738    Dolichoderinae
## 67             Dolichoderus_granulinotus        44558    Dolichoderinae
## 68                    Dolichoderus_heeri        51760    Dolichoderinae
## 69         Dolichoderus_jiaoyanshanensis        16579    Dolichoderinae
## 70                   Dolichoderus_kohlsi        44418    Dolichoderinae
## 71                Dolichoderus_kutscheri        44558    Dolichoderinae
## 72            Dolichoderus_kutschlinicus        44564    Dolichoderinae
## 73                 Dolichoderus_lacinius        16579    Dolichoderinae
## 74              Dolichoderus_longipennis        44414    Dolichoderinae
## 75             Dolichoderus_longipilosus        44557    Dolichoderinae
## 76                  Dolichoderus_lucidus        44558    Dolichoderinae
## 77            Dolichoderus_luridivenosus        36942    Dolichoderinae
## 78            Dolichoderus_mesosternalis        40999    Dolichoderinae
## 79                    Dolichoderus_nanus        44557    Dolichoderinae
## 80              Dolichoderus_obliteratus        39765    Dolichoderinae
## 81                Dolichoderus_oviformis        38999    Dolichoderinae
## 82               Dolichoderus_passalomma        40999    Dolichoderinae
## 83               Dolichoderus_perkovskyi        44558    Dolichoderinae
## 84                  Dolichoderus_pilipes        44558    Dolichoderinae
## 85                  Dolichoderus_pinguis        56094    Dolichoderinae
## 86                 Dolichoderus_polessus        44557    Dolichoderinae
## 87                Dolichoderus_polonicus        44557    Dolichoderinae
## 88               Dolichoderus_primitivus         5207    Dolichoderinae
## 89             Dolichoderus_prolaminatus         5207    Dolichoderinae
## 90                Dolichoderus_punctatus        44558    Dolichoderinae
## 91                 Dolichoderus_robustus        44557    Dolichoderinae
## 92                  Dolichoderus_rohweri         4971    Dolichoderinae
## 93             Dolichoderus_sculpturatus        44414    Dolichoderinae
## 94                 Dolichoderus_tauricus        41286    Dolichoderinae
## 95               Dolichoderus_tertiarius        44414    Dolichoderinae
## 96     Dolichoderus_transversipetiolaris        36942    Dolichoderinae
## 97                Dolichoderus_vectensis         5061    Dolichoderinae
## 98              Dolichoderus_vexillarius        40999    Dolichoderinae
## 99                 Dolichoderus_vlaskini        44558    Dolichoderinae
## 100              Dolichoderus_zherichini        44578    Dolichoderinae
## 101             Elaeomyrmex_coloradensis         4971    Dolichoderinae
## 102                 Elaeomyrmex_gracilis         4971    Dolichoderinae
## 103                 Elaphrodites_mutatus        16579    Dolichoderinae
## 104              Elaphrodites_scutulatus        16579    Dolichoderinae
## 105              Eldermyrmex_oblongiceps        40999    Dolichoderinae
## 106                 Electromyrmex_klebsi        40999    Dolichoderinae
## 107                   Emplastus_antiquus        37730    Dolichoderinae
## 108                 Emplastus_biamoensis        56094    Dolichoderinae
## 109                Emplastus_britannicus        37729    Dolichoderinae
## 110                     Emplastus_dubius        51760    Dolichoderinae
## 111                  Emplastus_elongatus        56094    Dolichoderinae
## 112                Emplastus_gurnetensis         5061    Dolichoderinae
## 113                     Emplastus_haueri        37730    Dolichoderinae
## 114                 Emplastus_hypolithus        37729    Dolichoderinae
## 115                    Emplastus_kozlovi        51861    Dolichoderinae
## 116                    Emplastus_macrops        56094    Dolichoderinae
## 117                 Emplastus_miocenicus        51760    Dolichoderinae
## 118                    Emplastus_ocellus        37344    Dolichoderinae
## 119                  Eotapinoma_compacta        44404    Dolichoderinae
## 120                  Eotapinoma_gracilis        44404    Dolichoderinae
## 121                 Eotapinoma_macalpini        38952    Dolichoderinae
## 122                Eurymyrmex_geologicus        36942    Dolichoderinae
## 123                             Forelius        49381    Dolichoderinae
## 124               Gracilidris_humiloides         5207    Dolichoderinae
## 125                          Iridomyrmex        38990    Dolichoderinae
## 126             Iridomyrmex_shandongicus        16579    Dolichoderinae
## 127                 Kotshkorkia_laticeps        41286    Dolichoderinae
## 128                     Ktunaxia_jucunda        55770    Dolichoderinae
## 129              Leptomyrmex_neotropicus         5207    Dolichoderinae
## 130              Leptomyrmula_maravignae        44518    Dolichoderinae
## 131                          Linepithema        55004    Dolichoderinae
## 132                           Liometopum        38709    Dolichoderinae
## 133              Liometopum_bogdassarovi        56276    Dolichoderinae
## 134                  Liometopum_eremicum        16579    Dolichoderinae
## 135                  Liometopum_imhoffii        37344    Dolichoderinae
## 136                Liometopum_incognitum        56094    Dolichoderinae
## 137                  Liometopum_lubricum        36942    Dolichoderinae
## 138                Liometopum_miocenicum         4971    Dolichoderinae
## 139              Liometopum_oligocenicum        40999    Dolichoderinae
## 140              Liometopum_potamophilum        16579    Dolichoderinae
## 141                  Liometopum_scudderi         4971    Dolichoderinae
## 142                   Miomyrmex_impactus         4971    Dolichoderinae
## 143                   Miomyrmex_striatus         4971    Dolichoderinae
## 144                Petraeomyrmex_minimus         4971    Dolichoderinae
## 145            Proiridomyrmex_rotundatus        55770    Dolichoderinae
## 146               Proiridomyrmex_vetulus        44418    Dolichoderinae
## 147                  Protazteca_capitata         4971    Dolichoderinae
## 148                  Protazteca_elongata         4971    Dolichoderinae
## 149                  Protazteca_eocenica        55770    Dolichoderinae
## 150                Protazteca_hendersoni         5014    Dolichoderinae
## 151                  Protazteca_quadrata         4971    Dolichoderinae
## 152                             Tapinoma        39584    Dolichoderinae
## 153                    Tapinoma_aberrans        44578    Dolichoderinae
## 154                     Tapinoma_baculum        16579    Dolichoderinae
## 155                  Tapinoma_electrinum        44578    Dolichoderinae
## 156                Tapinoma_minutissimum        44518    Dolichoderinae
## 157                      Tapinoma_troche         5207    Dolichoderinae
## 158               Technomyrmex_caritatis        44634    Dolichoderinae
## 159                 Technomyrmex_deletus        44518    Dolichoderinae
## 160             Technomyrmex_hispaniolae         5207    Dolichoderinae
## 161         Technomyrmex_septentrionalis        16579    Dolichoderinae
## 162                   Usomyrma_mirabilis        53816    Dolichoderinae
## 163            Yantaromyrmex_constrictus        44414    Dolichoderinae
## 164               Yantaromyrmex_geinitzi        38999    Dolichoderinae
## 165            Yantaromyrmex_intermedius        50040    Dolichoderinae
## 166              Yantaromyrmex_mayrianum        50040    Dolichoderinae
## 167            Yantaromyrmex_samlandicus        40999    Dolichoderinae
## 168              Zherichinius_horribilis        44404    Dolichoderinae
## 169                   Zherichinius_rapax        44404    Dolichoderinae
## 170         Acanthostichus_hispaniolicus        44410         Dorylinae
## 171            Cylindromyrmex_antillanus        44524         Dorylinae
## 172            Cylindromyrmex_electrinus        44524         Dorylinae
## 173            Cylindromyrmex_inopinatus        44525         Dorylinae
## 174                            Dorylinae        50423         Dorylinae
## 175                            Lioponera        38999         Dorylinae
## 176                          Neivamyrmex        52386         Dorylinae
## 177                  Neivamyrmex_ectopus         5206         Dorylinae
## 178                Procerapachys_annosus        40999         Dorylinae
## 179                Procerapachys_favosus        40999         Dorylinae
## 180               Procerapachys_sulcatus        44602         Dorylinae
## 181                     Canapone_dentata        38952      Ectatomminae
## 182                    Ectatomma_gracile        44518      Ectatomminae
## 183                  Gnamptogenys_brunoi        44600      Ectatomminae
## 184                   Gnamptogenys_casca        44600      Ectatomminae
## 185                Gnamptogenys_europaea        44414      Ectatomminae
## 186               Gnamptogenys_levinates        44601      Ectatomminae
## 187                Gnamptogenys_pristina        44601      Ectatomminae
## 188             Gnamptogenys_rohdendorfi        44602      Ectatomminae
## 189              Pseudectatomma_eocenica        43781      Ectatomminae
## 190             Pseudectatomma_striatula        43781      Ectatomminae
## 191                Rhytidoponera_gibsoni        59088      Ectatomminae
## 192            Rhytidoponera_kirghizorum        41286      Ectatomminae
## 193               Rhytidoponera_waipiata        59088      Ectatomminae
## 194                 Titanomyrma_gigantea        44589       Formiciinae
## 195                    Titanomyrma_lubei        35980       Formiciinae
## 196                Titanomyrma_simillima        44589       Formiciinae
## 197                             Acropyga        40600        Formicinae
## 198                   Acropyga_glaesaria        40302        Formicinae
## 199                          Camponotini        51248        Formicinae
## 200                         Camponotites        41286        Formicinae
## 201                Camponotites_kraussei        40968        Formicinae
## 202             Camponotites_macropterus        41286        Formicinae
## 203              Camponotites_silvestris        51248        Formicinae
## 204              Camponotites_steinbachi        36140        Formicinae
## 205           Camponotites_xiejiaheensis        16579        Formicinae
## 206                           Camponotus        35523        Formicinae
## 207                     Camponotus_ambon        16579        Formicinae
## 208                Camponotus_ampullosus        16579        Formicinae
## 209                Camponotus_cockerelli         5061        Formicinae
## 210                 Camponotus_compactus        38738        Formicinae
## 211                    Camponotus_crozei        51140        Formicinae
## 212              Camponotus_curviansatus        16579        Formicinae
## 213                Camponotus_festinatus        44458        Formicinae
## 214                  Camponotus_festinus        16579        Formicinae
## 215               Camponotus_fuscipennis         4971        Formicinae
## 216                  Camponotus_gracilis        16579        Formicinae
## 217                 Camponotus_heracleus        37344        Formicinae
## 218               Camponotus_herculeanus        52251        Formicinae
## 219                 Camponotus_induratus        37344        Formicinae
## 220                  Camponotus_lignitus        37344        Formicinae
## 221              Camponotus_longiventris        38999        Formicinae
## 222                    Camponotus_longus        16579        Formicinae
## 223                    Camponotus_luteus        16579        Formicinae
## 224                    Camponotus_mengei        38999        Formicinae
## 225             Camponotus_microcephalus         4971        Formicinae
## 226             Camponotus_microthoracus        16579        Formicinae
## 227                     Camponotus_mitis        16579        Formicinae
## 228                  Camponotus_novotnyi        44459        Formicinae
## 229                    Camponotus_obesus        44462        Formicinae
## 230               Camponotus_oeningensis        37344        Formicinae
## 231              Camponotus_palaeopterus        16579        Formicinae
## 232               Camponotus_penninervis        38999        Formicinae
## 233               Camponotus_petrifactus         4971        Formicinae
## 234                    Camponotus_pictus        36942        Formicinae
## 235               Camponotus_pinguiculus        37344        Formicinae
## 236                    Camponotus_plenus        16579        Formicinae
## 237             Camponotus_shanwangensis        16579        Formicinae
## 238                 Camponotus_theobaldi        38999        Formicinae
## 239                 Camponotus_tokunagai        52927        Formicinae
## 240                  Camponotus_ullrichi        44435        Formicinae
## 241                  Camponotus_vehemens        38738        Formicinae
## 242                     Camponotus_vetus         5133        Formicinae
## 243           Cataglyphoides_constrictus        44414        Formicinae
## 244           Cataglyphoides_intermedius        44522        Formicinae
## 245          Chimaeromyrma_brachycephala        44404        Formicinae
## 246           Conoformica_bitterfeldiana        44522        Formicinae
## 247              Curtipalpulus_eocenicus        40725        Formicinae
## 248              Drymomyrmex_claripennis        40999        Formicinae
## 249              Drymomyrmex_fuscipennis        38999        Formicinae
## 250             Eoleptocerites_chinensis        40725        Formicinae
## 251           Eoleptocerites_fushunensis        40725        Formicinae
## 252             Eurytarsites_fushunensis        40725        Formicinae
## 253                              Formica        38999        Formicinae
## 254                     Formica_alsatica        38999        Formicinae
## 255                       Formica_annosa        55770        Formicinae
## 256                       Formica_arcana        39765        Formicinae
## 257                Formica_auxillacensis        44462        Formicinae
## 258                   Formica_bauckhorni        44433        Formicinae
## 259                   Formica_biamoensis        56094        Formicinae
## 260                   Formica_buphthalma        44517        Formicinae
## 261                    Formica_cantalica        44462        Formicinae
## 262                         Formica_ceps        16579        Formicinae
## 263                   Formica_cockerelli         4971        Formicinae
## 264                      Formica_demersa        37344        Formicinae
## 265                      Formica_eoptera        42241        Formicinae
## 266               Formica_flavifemoralis        36942        Formicinae
## 267                        Formica_flori        38999        Formicinae
## 268                        Formica_fusca        16579        Formicinae
## 269                      Formica_gibbosa        44584        Formicinae
## 270                 Formica_globiventris        37344        Formicinae
## 271                      Formica_grandis         4971        Formicinae
## 272                      Formica_gravida        37344        Formicinae
## 273                      Formica_gustawi        44522        Formicinae
## 274                  Formica_heteroptera        41450        Formicinae
## 275                      Formica_horrida        40999        Formicinae
## 276                      Formica_immersa        37344        Formicinae
## 277                    Formica_kutscheri        44522        Formicinae
## 278                   Formica_latinodosa        38999        Formicinae
## 279                     Formica_lavateri        37344        Formicinae
## 280                   Formica_linquensis        16579        Formicinae
## 281                  Formica_longicollis        37344        Formicinae
## 282                       Formica_lucida        47505        Formicinae
## 283                      Formica_luteola        44584        Formicinae
## 284                 Formica_macrocephala        37344        Formicinae
## 285                  Formica_macrognatha        44584        Formicinae
## 286                Formica_macrophthalma        37344        Formicinae
## 287                 Formica_maculipennis        44462        Formicinae
## 288                    Formica_martynovi        44457        Formicinae
## 289                Formica_neorufibarbis        55325        Formicinae
## 290                        Formica_nigra        44584        Formicinae
## 291                      Formica_obscura        37344        Formicinae
## 292                       Formica_orbata        37344        Formicinae
## 293                        Formica_ovala        16579        Formicinae
## 294               Formica_palaeopolonica        44522        Formicinae
## 295                Formica_paleosibirica        56094        Formicinae
## 296                   Formica_parexsecta        51760        Formicinae
## 297                      Formica_parvula        44584        Formicinae
## 298                    Formica_phaethusa        40999        Formicinae
## 299                       Formica_pitoni        44462        Formicinae
## 300                    Formica_primitiva        37344        Formicinae
## 301                 Formica_primordialis        37344        Formicinae
## 302                      Formica_procera        37344        Formicinae
## 303                    Formica_pulchella        37344        Formicinae
## 304                     Formica_quadrata        44586        Formicinae
## 305                   Formica_radchenkoi        44522        Formicinae
## 306                      Formica_robusta         4971        Formicinae
## 307                      Formica_sepulta        38999        Formicinae
## 308                      Formica_serresi        38999        Formicinae
## 309                     Formica_seuberti        37344        Formicinae
## 310                  Formica_strangulata        40999        Formicinae
## 311                 Formica_surinamensis        44587        Formicinae
## 312                      Formica_trigona        44584        Formicinae
## 313                   Formica_tripartita        38999        Formicinae
## 314                       Formica_ungeri        37344        Formicinae
## 315                   Formica_zherikhini        44522        Formicinae
## 316                           Formicinae        44418        Formicinae
## 317               Fushuniformica_spinata        40725        Formicinae
## 318                    Gesomyrmex_bremii        37344        Formicinae
## 319                 Gesomyrmex_breviceps        44599        Formicinae
## 320                  Gesomyrmex_curiosus        44599        Formicinae
## 321                Gesomyrmex_flavescens        44599        Formicinae
## 322                Gesomyrmex_germanicus        44599        Formicinae
## 323                  Gesomyrmex_hoernesi        40999        Formicinae
## 324                  Gesomyrmex_incertus        56094        Formicinae
## 325                   Gesomyrmex_macrops        56094        Formicinae
## 326                    Gesomyrmex_magnus        56094        Formicinae
## 327                   Gesomyrmex_pulcher        44599        Formicinae
## 328          Glaphyromyrmex_oligocenicus        38999        Formicinae
## 329                  Heeridris_croaticus        51760        Formicinae
## 330         Huaxiaformica_mallepetiolata        40725        Formicinae
## 331                       Imhoffia_nigra        37344        Formicinae
## 332                     Imhoffia_pallida        38709        Formicinae
## 333                      Kyromyrma_neffi        36269        Formicinae
## 334                               Lasius        39931        Formicinae
## 335                   Lasius_anthracinus        51760        Formicinae
## 336                  Lasius_chambonensis        44462        Formicinae
## 337                       Lasius_crispus        44462        Formicinae
## 338                    Lasius_epicentrus        38999        Formicinae
## 339                    Lasius_globularis        38709        Formicinae
## 340                          Lasius_glom        55770        Formicinae
## 341                      Lasius_inflatus        16579        Formicinae
## 342                     Lasius_longaevus        51392        Formicinae
## 343                   Lasius_longipennis        37344        Formicinae
## 344                      Lasius_mordicus        16579        Formicinae
## 345                   Lasius_nemorivagus        40999        Formicinae
## 346                      Lasius_oblongus        37742        Formicinae
## 347                    Lasius_occultatus        37344        Formicinae
## 348                  Lasius_ophthalmicus        51392        Formicinae
## 349                     Lasius_peritulus         4971        Formicinae
## 350                       Lasius_pumilus        44414        Formicinae
## 351                   Lasius_punctulatus        44414        Formicinae
## 352              Lasius_schiefferdeckeri        44414        Formicinae
## 353                    Lasius_tertiarius        44614        Formicinae
## 354                     Lasius_truncatus        16579        Formicinae
## 355                       Lasius_validus        16579        Formicinae
## 356                       Lasius_vetulus        16579        Formicinae
## 357        Leptogasteritus_capricornutes        40725        Formicinae
## 358             Leucotaphus_donisthorpei        51861        Formicinae
## 359              Leucotaphus_gurnetensis        37729        Formicinae
## 360           Liaoformica_longipetiolata        40725        Formicinae
## 361         Longiformica_dongzhouheensis        40725        Formicinae
## 362          Longiformica_guchengziensis        40725        Formicinae
## 363        Magnogasterites_curticornutus        40725        Formicinae
## 364      Myrmecorhynchus_novaeseelandiae        59088        Formicinae
## 365                   Nylanderia_pygmaea        44414        Formicinae
## 366                    Nylanderia_vetula        44618        Formicinae
## 367                   Oecophylla_atavina        37729        Formicinae
## 368                Oecophylla_bartoniana        41450        Formicinae
## 369                 Oecophylla_brischkei        44414        Formicinae
## 370                Oecophylla_crassinoda        40999        Formicinae
## 371               Oecophylla_eckfeldiana        37721        Formicinae
## 372           Oecophylla_grandimandibula        51140        Formicinae
## 373                   Oecophylla_leakeyi        44619        Formicinae
## 374                 Oecophylla_longiceps        37721        Formicinae
## 375                  Oecophylla_megarche        37729        Formicinae
## 376                     Oecophylla_obesa        37344        Formicinae
## 377                 Oecophylla_praeclara        38738        Formicinae
## 378                    Oecophylla_sicula        44518        Formicinae
## 379                   Oecophylla_superba        38999        Formicinae
## 380               Orbicapitia_reticulata        40725        Formicinae
## 381              Ovalicapito_fushunensis        40725        Formicinae
## 382          Ovaligastrula_xilutianensis        40725        Formicinae
## 383               Plagiolepis_klinsmanni        44414        Formicinae
## 384                  Plagiolepis_kuenowi        44414        Formicinae
## 385                  Plagiolepis_labilis        44518        Formicinae
## 386              Plagiolepis_minutissima        44578        Formicinae
## 387                 Plagiolepis_paradoxa        44621        Formicinae
## 388               Plagiolepis_singularis        44414        Formicinae
## 389                Plagiolepis_solitaria        44414        Formicinae
## 390               Plagiolepis_squamifera        44414        Formicinae
## 391                 Plagiolepis_wheeleri        44621        Formicinae
## 392                  Polyrhachis_annosus        42983        Formicinae
## 393                  Prenolepis_henschei        39242        Formicinae
## 394        Prodimorphomyrmex_primigenius        40999        Formicinae
## 395          Protoformica_proformicoides        11234        Formicinae
## 396                  Protomyrmica_atavia        44624        Formicinae
## 397               Protrechina_carpenteri        38990        Formicinae
## 398            Pseudocamponotus_elkoanus         4971        Formicinae
## 399                  Pseudolasius_boreus        40999        Formicinae
## 400                Sicilomyrmex_corniger        44518        Formicinae
## 401            Sinoformica_longicapitata        40725        Formicinae
## 402                Sinotenuicapito_badis        40725        Formicinae
## 403               Wilsonia_liaoningensis        40725        Formicinae
## 404                Wilsonia_megagastrosa        40725        Formicinae
## 405                      Zatania_electra        44640        Formicinae
## 406                     Formicium_berryi        44588        Formicinae
## 407                    Formicium_brodiei        49700        Formicinae
##            tribe             genus fossil  min_ma max_ma     notes
## 1           None     Agroecomyrmex    Yes 33.9000 38.000      Note
## 2           None     Eulithomyrmex    Yes 33.9000 37.200      Note
## 3           None     Eulithomyrmex    Yes 33.9000 37.200      Note
## 4           None              None    Yes 20.4400 23.030      Note
## 5   Amblyoponini      Amblyoponini    Yes 20.4400 23.030      Note
## 6           None          Casaleia    Yes 40.4000 48.600      Note
## 7           None          Casaleia    Yes  5.3330 15.970      Note
## 8           None          Casaleia    Yes 11.6080 12.700      Note
## 9           None          Casaleia    Yes 33.9000 38.000      Note
## 10          None         Myopopone    Yes 11.6080 15.970      Note
## 11          None       Stigmatomma    Yes 33.9000 38.000      Note
## 12          None       Stigmatomma    Yes 33.9000 38.000      Note
## 13          None      Aneuretellus    Yes 41.3000 47.800      Note
## 14          None     Britaneuretus    Yes 33.9000 38.000      Note
## 15          None        Burmomyrma    Yes 93.5000 99.600      Note
## 16          None      Cananeuretus    Yes 70.6000 83.500      Note
## 17          None       Mianeuretus    Yes 46.2000 50.300      Note
## 18          None       Mianeuretus    Yes 46.2000 50.300      Note
## 19          None       Mianeuretus    Yes 33.9000 37.200      Note
## 20          None      Paraneuretus    Yes 33.9000 38.000      Note
## 21          None      Paraneuretus    Yes 33.9000 38.000      Note
## 22          None      Paraneuretus    Yes 33.9000 38.000      Note
## 23          None       Pityomyrmex    Yes 33.9000 38.000      Note
## 24          None     Protaneuretus    Yes 33.9000 38.000      Note
## 25          None       Archaeopone    Yes 89.8000 93.900      Note
## 26          None       Archaeopone    Yes 70.6000 83.500      Note
## 27          None           Armania    Yes 89.8000 93.900      Note
## 28          None           Armania    Yes 89.8000 93.900      Note
## 29          None           Armania    Yes 70.6000 83.500      Note
## 30          None           Armania    Yes 89.8000 93.900      Note
## 31          None           Armania    Yes 70.6000 83.500 Stem Ant?
## 32          None      Dolichomyrma    Yes 89.8000 93.900      Note
## 33          None      Dolichomyrma    Yes 89.8000 93.900      Note
## 34          None          Khetania    Yes 89.8000 93.900      Note
## 35          None            Orapia    Yes 89.8000 93.900      Note
## 36          None            Orapia    Yes 89.8000 93.900      Note
## 37          None      Poneropterus    Yes 70.6000 83.500      Note
## 38          None      Pseudarmania    Yes 70.6000 83.500 Stem Ant?
## 39          None      Pseudarmania    Yes 70.6000 83.500 Stem Ant?
## 40                     Brownimecia    Yes 89.8000 93.900      Note
## 41          None         Alloiomma    Yes 11.6080 15.970      Note
## 42          None         Alloiomma    Yes 11.6080 15.970      Note
## 43          None   Asymphylomyrmex    Yes 33.9000 38.000      Note
## 44                          Azteca    Yes 15.9700 23.030      Note
## 45                          Azteca    Yes 13.8200 20.440      Note
## 46                          Azteca    Yes 13.8200 20.440      Note
## 47          None      Chronomyrmex    Yes 70.6000 83.500      Note
## 48          None     Ctenobethylus    Yes 28.4000 33.900      Note
## 49          None              None    Yes  5.3330  7.246      Note
## 50          None      Dolichoderus    Yes  5.3330 55.800      Note
## 51          None      Dolichoderus    Yes 33.9000 38.000      Note
## 52          None      Dolichoderus    Yes 28.4000 33.900      Note
## 53          None      Dolichoderus    Yes 33.9000 37.200      Note
## 54          None      Dolichoderus    Yes 23.0300 28.100      Note
## 55          None      Dolichoderus    Yes 33.9000 38.000      Note
## 56          None      Dolichoderus    Yes 33.9000 38.000      Note
## 57          None      Dolichoderus    Yes 33.9000 38.000      Note
## 58          None      Dolichoderus    Yes 28.4000 33.900      Note
## 59          None      Dolichoderus    Yes 13.8200 20.440      Note
## 60          None      Dolichoderus    Yes 28.4000 33.900      Note
## 61          None      Dolichoderus    Yes 33.9000 38.000      Note
## 62          None      Dolichoderus    Yes 13.8200 20.440      Note
## 63          None      Dolichoderus    Yes 41.3000 47.800      Note
## 64          None      Dolichoderus    Yes 33.9000 38.000      Note
## 65          None      Dolichoderus    Yes 11.6080 15.970      Note
## 66          None      Dolichoderus    Yes 28.4000 33.900      Note
## 67          None      Dolichoderus    Yes 33.9000 38.000      Note
## 68          None      Dolichoderus    Yes 11.6080 12.700      Note
## 69          None      Dolichoderus    Yes 11.6080 15.970      Note
## 70          None      Dolichoderus    Yes 46.2000 50.300      Note
## 71          None      Dolichoderus    Yes 33.9000 38.000      Note
## 72          None      Dolichoderus    Yes 33.9000 37.200      Note
## 73          None      Dolichoderus    Yes 11.6080 15.970      Note
## 74          None      Dolichoderus    Yes 33.9000 38.000      Note
## 75          None      Dolichoderus    Yes 33.9000 38.000      Note
## 76          None      Dolichoderus    Yes 33.9000 38.000      Note
## 77          None      Dolichoderus    Yes 11.6080 15.970      Note
## 78          None      Dolichoderus    Yes 33.9000 38.000      Note
## 79          None      Dolichoderus    Yes 33.9000 38.000      Note
## 80          None      Dolichoderus    Yes 23.0300 33.900      Note
## 81          None      Dolichoderus    Yes 33.9000 37.200      Note
## 82          None      Dolichoderus    Yes 33.9000 38.000      Note
## 83          None      Dolichoderus    Yes 33.9000 38.000      Note
## 84          None      Dolichoderus    Yes 33.9000 38.000      Note
## 85          None      Dolichoderus    Yes 33.9000 38.000      Note
## 86          None      Dolichoderus    Yes 33.9000 38.000      Note
## 87          None      Dolichoderus    Yes 33.9000 38.000      Note
## 88          None      Dolichoderus    Yes 13.8200 20.440      Note
## 89          None      Dolichoderus    Yes 13.8200 20.440      Note
## 90          None      Dolichoderus    Yes 33.9000 38.000      Note
## 91          None      Dolichoderus    Yes 33.9000 38.000      Note
## 92          None      Dolichoderus    Yes 33.9000 37.200      Note
## 93          None      Dolichoderus    Yes 33.9000 38.000      Note
## 94          None      Dolichoderus    Yes 13.8200 15.970      Note
## 95          None      Dolichoderus    Yes 33.9000 38.000      Note
## 96          None      Dolichoderus    Yes 11.6080 15.970      Note
## 97          None      Dolichoderus    Yes 33.9000 38.000      Note
## 98          None      Dolichoderus    Yes 33.9000 38.000      Note
## 99          None      Dolichoderus    Yes 33.9000 38.000      Note
## 100         None      Dolichoderus    Yes 33.9000 38.000      Note
## 101         None       Elaeomyrmex    Yes 33.9000 37.200      Note
## 102         None       Elaeomyrmex    Yes 33.9000 37.200      Note
## 103         None      Elaphrodites    Yes 11.6080 15.970      Note
## 104         None      Elaphrodites    Yes 11.6080 15.970      Note
## 105         None       Eldermyrmex    Yes 33.9000 38.000      Note
## 106         None     Electromyrmex    Yes 33.9000 38.000      Note
## 107         None         Emplastus    Yes 11.6080 12.700      Note
## 108         None         Emplastus    Yes 33.9000 38.000      Note
## 109         None         Emplastus    Yes 33.9000 38.000      Note
## 110         None         Emplastus    Yes 11.6080 12.700      Note
## 111         None         Emplastus    Yes 33.9000 38.000      Note
## 112         None         Emplastus    Yes 33.9000 38.000      Note
## 113         None         Emplastus    Yes 11.6080 12.700      Note
## 114         None         Emplastus    Yes 33.9000 38.000      Note
## 115         None         Emplastus    Yes 33.9000 38.000      Note
## 116         None         Emplastus    Yes 33.9000 38.000      Note
## 117         None         Emplastus    Yes 11.6080 12.700      Note
## 118         None         Emplastus    Yes 11.6080 12.700      Note
## 119         None        Eotapinoma    Yes 41.3000 47.800      Note
## 120         None        Eotapinoma    Yes 41.3000 47.800      Note
## 121         None        Eotapinoma    Yes 70.6000 83.500      Note
## 122         None        Eurymyrmex    Yes 11.6080 15.970      Note
## 123         None          Forelius    Yes 15.9700 23.030      Note
## 124         None       Gracilidris    Yes 13.8200 20.440      Note
## 125         None       Iridomyrmex    Yes 38.0000 41.300      Note
## 126         None       Iridomyrmex    Yes 11.6080 15.970      Note
## 127         None       Kotshkorkia    Yes  5.3330 15.970      Note
## 128         None          Ktunaxia    Yes 41.3000 47.800      Note
## 129         None       Leptomyrmex    Yes 13.8200 20.440      Note
## 130         None      Leptomyrmula    Yes  5.3330 11.608      Note
## 131         None       Linepithema    Yes 13.8200 20.440      Note
## 132         None        Liometopum    Yes 11.6080 12.700      Note
## 133         None        Liometopum    Yes 33.9000 38.000      Note
## 134         None        Liometopum    Yes 11.6080 15.970      Note
## 135         None        Liometopum    Yes 11.6080 12.700      Note
## 136         None        Liometopum    Yes 33.9000 38.000      Note
## 137         None        Liometopum    Yes 11.6080 15.970      Note
## 138         None        Liometopum    Yes 33.9000 37.200      Note
## 139         None        Liometopum    Yes 33.9000 38.000      Note
## 140         None        Liometopum    Yes 11.6080 15.970      Note
## 141         None        Liometopum    Yes 33.9000 37.200      Note
## 142         None         Miomyrmex    Yes 33.9000 37.200      Note
## 143         None         Miomyrmex    Yes 33.9000 37.200      Note
## 144         None     Petraeomyrmex    Yes 33.9000 37.200      Note
## 145         None    Proiridomyrmex    Yes 41.3000 47.800      Note
## 146         None    Proiridomyrmex    Yes 46.2000 50.300      Note
## 147         None        Protazteca    Yes 33.9000 37.200      Note
## 148         None        Protazteca    Yes 33.9000 37.200      Note
## 149         None        Protazteca    Yes 41.3000 47.800      Note
## 150         None        Protazteca    Yes 33.9000 37.200      Note
## 151         None        Protazteca    Yes 33.9000 37.200      Note
## 152         None          Tapinoma    Yes  5.3330 11.608      Note
## 153         None          Tapinoma    Yes 33.9000 38.000      Note
## 154         None          Tapinoma    Yes 11.6080 15.970      Note
## 155         None          Tapinoma    Yes 33.9000 38.000      Note
## 156         None          Tapinoma    Yes  5.3330 11.608      Note
## 157         None          Tapinoma    Yes 13.8200 20.440      Note
## 158         None      Technomyrmex    Yes 13.8200 20.440      Note
## 159         None      Technomyrmex    Yes  5.3330 11.608      Note
## 160         None      Technomyrmex    Yes 13.8200 20.440      Note
## 161         None      Technomyrmex    Yes 11.6080 15.970      Note
## 162         None          Usomyrma    Yes 33.9000 38.000      Note
## 163         None     Yantaromyrmex    Yes 33.9000 38.000      Note
## 164         None     Yantaromyrmex    Yes 28.4000 33.900      Note
## 165         None     Yantaromyrmex    Yes 33.9000 38.000      Note
## 166         None     Yantaromyrmex    Yes 33.9000 38.000      Note
## 167         None     Yantaromyrmex    Yes 33.9000 38.000      Note
## 168         None      Zherichinius    Yes 41.3000 47.800      Note
## 169         None      Zherichinius    Yes 41.3000 47.800      Note
## 170                 Acanthostichus    Yes 13.8200 20.440      Note
## 171         None    Cylindromyrmex    Yes 13.8200 20.440      Note
## 172         None    Cylindromyrmex    Yes 13.8200 20.440      Note
## 173         None    Cylindromyrmex    Yes 13.8200 20.440      Note
## 174         None              None    Yes  1.8000  4.900      Note
## 175         None         Lioponera    Yes 28.4000 33.900      Note
## 176         None       Neivamyrmex    Yes 15.9700 23.030      Note
## 177         None       Neivamyrmex    Yes 13.8200 20.440      Note
## 178         None     Procerapachys    Yes 33.9000 38.000      Note
## 179         None     Procerapachys    Yes 33.9000 38.000      Note
## 180         None     Procerapachys    Yes 33.9000 38.000      Note
## 181         None          Canapone    Yes 70.6000 83.500      Note
## 182                      Ectatomma    Yes  5.3330 11.608      Note
## 183                   Gnamptogenys    Yes 13.8200 20.440      Note
## 184                   Gnamptogenys    Yes 13.8200 20.440      Note
## 185                   Gnamptogenys    Yes 33.9000 38.000      Note
## 186                   Gnamptogenys    Yes 13.8200 20.440      Note
## 187                   Gnamptogenys    Yes 13.8200 20.440      Note
## 188                   Gnamptogenys    Yes 33.9000 38.000      Note
## 189         None    Pseudectatomma    Yes 40.4000 48.600      Note
## 190         None    Pseudectatomma    Yes 40.4000 48.600      Note
## 191         None     Rhytidoponera    Yes 20.4400 23.030      Note
## 192         None     Rhytidoponera    Yes  5.3330 15.970      Note
## 193         None     Rhytidoponera    Yes 20.4400 23.030      Note
## 194         None       Titanomyrma    Yes 40.4000 48.600      Note
## 195         None       Titanomyrma    Yes 48.6000 55.800      Note
## 196         None       Titanomyrma    Yes 40.4000 48.600      Note
## 197                       Acropyga    Yes 13.8200 20.440      Note
## 198                       Acropyga    Yes 13.8200 20.440      Note
## 199  Camponotini              None    Yes  2.5880  3.600      Note
## 200         None      Camponotites    Yes 11.6080 15.970      Note
## 201         None      Camponotites    Yes 47.8000 56.000      Note
## 202         None      Camponotites    Yes 11.6080 15.970      Note
## 203         None      Camponotites    Yes  2.5880  3.600      Note
## 204         None      Camponotites    Yes  2.5880  3.600      Note
## 205         None      Camponotites    Yes 11.6080 15.970      Note
## 206         None        Camponotus    Yes 15.9700 20.430      Note
## 207         None        Camponotus    Yes 11.6080 15.970      Note
## 208         None        Camponotus    Yes 11.6080 15.970      Note
## 209         None        Camponotus    Yes 33.9000 38.000      Note
## 210         None        Camponotus    Yes 28.4000 33.900      Note
## 211         None        Camponotus    Yes  5.3330  8.700      Note
## 212         None        Camponotus    Yes 11.6080 15.970      Note
## 213         None        Camponotus    Yes 15.9700 20.430      Note
## 214         None        Camponotus    Yes 11.6080 15.970      Note
## 215         None        Camponotus    Yes 33.9000 37.200      Note
## 216         None        Camponotus    Yes 11.6080 15.970      Note
## 217         None        Camponotus    Yes 11.6080 12.700      Note
## 218         None        Camponotus    Yes  1.8060  2.588      Note
## 219         None        Camponotus    Yes 11.6080 12.700      Note
## 220         None        Camponotus    Yes 11.6080 12.700      Note
## 221         None        Camponotus    Yes 23.0300 28.100      Note
## 222         None        Camponotus    Yes 11.6080 15.970      Note
## 223         None        Camponotus    Yes 11.6080 15.970      Note
## 224         None        Camponotus    Yes 28.4000 33.900      Note
## 225         None        Camponotus    Yes 33.9000 37.200      Note
## 226         None        Camponotus    Yes 11.6080 15.970      Note
## 227         None        Camponotus    Yes 11.6080 15.970      Note
## 228         None        Camponotus    Yes 28.1000 33.900      Note
## 229         None        Camponotus    Yes  7.2460 11.620      Note
## 230         None        Camponotus    Yes 11.6080 12.700      Note
## 231         None        Camponotus    Yes 11.6080 15.970      Note
## 232         None        Camponotus    Yes 23.0300 28.100      Note
## 233         None        Camponotus    Yes 33.9000 37.200      Note
## 234         None        Camponotus    Yes 11.6080 15.970      Note
## 235         None        Camponotus    Yes 11.6080 12.700      Note
## 236         None        Camponotus    Yes 11.6080 15.970      Note
## 237         None        Camponotus    Yes 11.6080 15.970      Note
## 238         None        Camponotus    Yes 23.0300 28.100      Note
## 239         None        Camponotus    Yes 48.6000 55.800      Note
## 240         None        Camponotus    Yes  5.3330  7.246      Note
## 241         None        Camponotus    Yes 28.4000 33.900      Note
## 242         None        Camponotus    Yes 46.2000 50.300      Note
## 243         None    Cataglyphoides    Yes 33.9000 38.000      Note
## 244         None    Cataglyphoides    Yes 33.9000 38.000      Note
## 245         None     Chimaeromyrma    Yes 41.3000 47.800      Note
## 246         None       Conoformica    Yes 33.9000 38.000      Note
## 247         None     Curtipalpulus    Yes 48.6000 55.800      Note
## 248         None       Drymomyrmex    Yes 33.9000 38.000      Note
## 249         None       Drymomyrmex    Yes 28.4000 33.900      Note
## 250         None    Eoleptocerites    Yes 48.6000 55.800      Note
## 251         None    Eoleptocerites    Yes 48.6000 55.800      Note
## 252         None      Eurytarsites    Yes 48.6000 55.800      Note
## 253         None           Formica    Yes 33.9000 37.200      Note
## 254         None           Formica    Yes 28.4000 33.900      Note
## 255         None           Formica    Yes 41.3000 47.800      Note
## 256         None           Formica    Yes 23.0300 33.900      Note
## 257         None           Formica    Yes  5.3330  7.246      Note
## 258         None           Formica    Yes 23.0300 28.400      Note
## 259         None           Formica    Yes 33.9000 38.000      Note
## 260         None           Formica    Yes 15.9700 16.900      Note
## 261         None           Formica    Yes  7.2460 11.620      Note
## 262         None           Formica    Yes 11.6080 15.970      Note
## 263         None           Formica    Yes 33.9000 37.200      Note
## 264         None           Formica    Yes 11.6080 12.700      Note
## 265         None           Formica    Yes 33.9000 37.200      Note
## 266         None           Formica    Yes 11.6080 15.970      Note
## 267         None           Formica    Yes 28.4000 33.900      Note
## 268         None           Formica    Yes 11.6080 15.970      Note
## 269         None           Formica    Yes 33.9000 38.000      Note
## 270         None           Formica    Yes 11.6080 12.700      Note
## 271         None           Formica    Yes 33.9000 37.200      Note
## 272         None           Formica    Yes 11.6080 12.700      Note
## 273         None           Formica    Yes 33.9000 38.000      Note
## 274         None           Formica    Yes 41.3000 47.800      Note
## 275         None           Formica    Yes 33.9000 38.000      Note
## 276         None           Formica    Yes 11.6080 12.700      Note
## 277         None           Formica    Yes 33.9000 38.000      Note
## 278         None           Formica    Yes 23.0300 28.100      Note
## 279         None           Formica    Yes 11.6080 12.700      Note
## 280         None           Formica    Yes 11.6080 15.970      Note
## 281         None           Formica    Yes 11.6080 12.700      Note
## 282         None           Formica    Yes 33.9000 38.000      Note
## 283         None           Formica    Yes 33.9000 38.000      Note
## 284         None           Formica    Yes 11.6080 12.700      Note
## 285         None           Formica    Yes 33.9000 38.000      Note
## 286         None           Formica    Yes 11.6080 12.700      Note
## 287         None           Formica    Yes  5.3330  7.246      Note
## 288         None           Formica    Yes 11.6080 12.700      Note
## 289         None           Formica    Yes  0.0117  0.126      Note
## 290         None           Formica    Yes 33.9000 38.000      Note
## 291         None           Formica    Yes 11.6080 12.700      Note
## 292         None           Formica    Yes 11.6080 12.700      Note
## 293         None           Formica    Yes 11.6080 15.970      Note
## 294         None           Formica    Yes 33.9000 38.000      Note
## 295         None           Formica    Yes 33.9000 38.000      Note
## 296         None           Formica    Yes 11.6080 12.700      Note
## 297         None           Formica    Yes 33.9000 38.000      Note
## 298         None           Formica    Yes 33.9000 38.000      Note
## 299         None           Formica    Yes  2.5880  3.600      Note
## 300         None           Formica    Yes 11.6080 12.700      Note
## 301         None           Formica    Yes 11.6080 12.700      Note
## 302         None           Formica    Yes 11.6080 12.700      Note
## 303         None           Formica    Yes 11.6080 12.700      Note
## 304         None           Formica    Yes 33.9000 38.000      Note
## 305         None           Formica    Yes 33.9000 38.000      Note
## 306         None           Formica    Yes 33.9000 37.200      Note
## 307         None           Formica    Yes 28.4000 33.900      Note
## 308         None           Formica    Yes 23.0300 28.100      Note
## 309         None           Formica    Yes 11.6080 12.700      Note
## 310         None           Formica    Yes 33.9000 38.000      Note
## 311         None           Formica    Yes 33.9000 38.000      Note
## 312         None           Formica    Yes 33.9000 38.000      Note
## 313         None           Formica    Yes 28.4000 33.900      Note
## 314         None           Formica    Yes 11.6080 12.700      Note
## 315         None           Formica    Yes 33.9000 38.000      Note
## 316         None              None    Yes 46.2000 50.300      Note
## 317         None    Fushuniformica    Yes 48.6000 55.800      Note
## 318         None        Gesomyrmex    Yes 11.6080 12.700      Note
## 319         None        Gesomyrmex    Yes 40.4000 48.600      Note
## 320         None        Gesomyrmex    Yes 40.4000 48.600      Note
## 321         None        Gesomyrmex    Yes 40.4000 48.600      Note
## 322         None        Gesomyrmex    Yes 40.4000 48.600      Note
## 323         None        Gesomyrmex    Yes 33.9000 38.000      Note
## 324         None        Gesomyrmex    Yes 33.9000 38.000      Note
## 325         None        Gesomyrmex    Yes 33.9000 38.000      Note
## 326         None        Gesomyrmex    Yes 33.9000 38.000      Note
## 327         None        Gesomyrmex    Yes 40.4000 48.600      Note
## 328         None    Glaphyromyrmex    Yes 28.4000 33.900      Note
## 329         None         Heeridris    Yes 11.6080 12.700      Note
## 330         None     Huaxiaformica    Yes 48.6000 55.800      Note
## 331         None          Imhoffia    Yes 11.6080 12.700      Note
## 332         None          Imhoffia    Yes 11.6080 12.700      Note
## 333         None         Kyromyrma    Yes 89.8000 93.900      Note
## 334         None            Lasius    Yes 20.4400 23.030      Note
## 335         None            Lasius    Yes 11.6080 12.700      Note
## 336         None            Lasius    Yes  2.5880  3.600      Note
## 337         None            Lasius    Yes  7.2460 11.620      Note
## 338         None            Lasius    Yes 23.0300 28.100      Note
## 339         None            Lasius    Yes 23.0300 28.100      Note
## 340         None            Lasius    Yes 41.3000 47.800      Note
## 341         None            Lasius    Yes 11.6080 15.970      Note
## 342         None            Lasius    Yes 11.6080 12.700      Note
## 343         None            Lasius    Yes 11.6080 12.700      Note
## 344         None            Lasius    Yes 11.6080 15.970      Note
## 345         None            Lasius    Yes 33.9000 38.000      Note
## 346         None            Lasius    Yes  5.3330 11.608      Note
## 347         None            Lasius    Yes 12.7000 13.650      Note
## 348         None            Lasius    Yes 11.6080 12.700      Note
## 349         None            Lasius    Yes 33.9000 37.200      Note
## 350         None            Lasius    Yes 33.9000 38.000      Note
## 351         None            Lasius    Yes 33.9000 38.000      Note
## 352         None            Lasius    Yes 33.9000 38.000      Note
## 353         None            Lasius    Yes 11.6080 12.700      Note
## 354         None            Lasius    Yes 11.6080 15.970      Note
## 355         None            Lasius    Yes 11.6080 15.970      Note
## 356         None            Lasius    Yes 11.6080 15.970      Note
## 357         None   Leptogasteritus    Yes 48.6000 55.800      Note
## 358         None       Leucotaphus    Yes 33.9000 38.000      Note
## 359         None       Leucotaphus    Yes 33.9000 38.000      Note
## 360         None       Liaoformica    Yes 48.6000 55.800      Note
## 361         None      Longiformica    Yes 48.6000 55.800      Note
## 362         None      Longiformica    Yes 48.6000 55.800      Note
## 363         None   Magnogasterites    Yes 48.6000 55.800      Note
## 364         None   Myrmecorhynchus    Yes 20.4400 23.030      Note
## 365         None        Nylanderia    Yes 33.9000 38.000      Note
## 366         None        Nylanderia    Yes 13.8200 20.440      Note
## 367         None        Oecophylla    Yes 33.9000 38.000      Note
## 368         None        Oecophylla    Yes 41.3000 47.800      Note
## 369         None        Oecophylla    Yes 33.9000 38.000      Note
## 370         None        Oecophylla    Yes 33.9000 38.000      Note
## 371         None        Oecophylla    Yes 40.4000 48.600      Note
## 372         None        Oecophylla    Yes  5.3330  8.700      Note
## 373         None        Oecophylla    Yes 15.9700 20.440      Note
## 374         None        Oecophylla    Yes 40.4000 48.600      Note
## 375         None        Oecophylla    Yes 33.9000 38.000      Note
## 376         None        Oecophylla    Yes 11.6080 12.700      Note
## 377         None        Oecophylla    Yes 28.4000 33.900      Note
## 378         None        Oecophylla    Yes  5.3330 11.608      Note
## 379         None        Oecophylla    Yes 28.4000 33.900      Note
## 380         None       Orbicapitia    Yes 48.6000 55.800      Note
## 381         None       Ovalicapito    Yes 48.6000 55.800      Note
## 382         None     Ovaligastrula    Yes 48.6000 55.800      Note
## 383         None       Plagiolepis    Yes 33.9000 38.000      Note
## 384         None       Plagiolepis    Yes 33.9000 38.000      Note
## 385         None       Plagiolepis    Yes  5.3330 11.608      Note
## 386         None       Plagiolepis    Yes 33.9000 38.000      Note
## 387         None       Plagiolepis    Yes 33.9000 38.000      Note
## 388         None       Plagiolepis    Yes 33.9000 38.000      Note
## 389         None       Plagiolepis    Yes 33.9000 38.000      Note
## 390         None       Plagiolepis    Yes 33.9000 38.000      Note
## 391         None       Plagiolepis    Yes 33.9000 38.000      Note
## 392         None       Polyrhachis    Yes  5.3330  7.246      Note
## 393                     Prenolepis    Yes 33.9000 38.000      Note
## 394         None Prodimorphomyrmex    Yes 33.9000 38.000      Note
## 395         None      Protoformica    Yes 33.9000 38.000      Note
## 396         None      Protomyrmica    Yes 33.9000 38.000      Note
## 397         None       Protrechina    Yes 38.0000 41.300      Note
## 398         None  Pseudocamponotus    Yes 28.4000 37.200      Note
## 399         None      Pseudolasius    Yes 33.9000 38.000      Note
## 400         None      Sicilomyrmex    Yes  5.3330 11.608      Note
## 401         None       Sinoformica    Yes 48.6000 55.800      Note
## 402         None   Sinotenuicapito    Yes 48.6000 55.800      Note
## 403         None          Wilsonia    Yes 48.6000 55.800      Note
## 404         None          Wilsonia    Yes 48.6000 55.800      Note
## 405         None           Zatania    Yes 13.8200 20.440      Note
## 406         None         Formicium    Yes 38.0000 41.300      Note
## 407         None         Formicium    Yes 33.9000 38.000      Note

What we see is the data. We are able to call up the data to view because the data have been saved to a variable, ant_data, which was stored in memory as a dataframe when we called read_csv.

Challenge:

Try this command again without saving it to a variable. - What happens?

  • Is it what you expected?
  • Why did this happen?

Let’s take a closer look at the ant_data object. On the face of it, it looks very much like our Excel file. Now, we’ll explore how to access data in this dataframe. Let’s start by getting a look at all the names in the file. There are a couple ways we can do this:

ant_data$specimen
##   [1] "Agroecomyrmex_duisburgi"             
##   [2] "Eulithomyrmex_rugosus"               
##   [3] "Eulithomyrmex_striatus"              
##   [4] "Amblyoponinae"                       
##   [5] "Amblyoponini"                        
##   [6] "Casaleia_eocenica"                   
##   [7] "Casaleia_inversa"                    
##   [8] "Casaleia_longiventris"               
##   [9] "Casaleia_orientalis"                 
##  [10] "Myopopone_sinensis"                  
##  [11] "Stigmatomma_electrina"               
##  [12] "Stigmatomma_groehni"                 
##  [13] "Aneuretellus_deformis"               
##  [14] "Britaneuretus_anglicus"              
##  [15] "Burmomyrma_rossi"                    
##  [16] "Cananeuretus_occidentalis"           
##  [17] "Mianeuretus"                         
##  [18] "Mianeuretus_eocenicus"               
##  [19] "Mianeuretus_mirabilis"               
##  [20] "Paraneuretus_dubovikoffi"            
##  [21] "Paraneuretus_longicornis"            
##  [22] "Paraneuretus_tornquisti"             
##  [23] "Pityomyrmex_tornquisti"              
##  [24] "Protaneuretus_succineus"             
##  [25] "Archaeopone_kzylzharica"             
##  [26] "Archaeopone_taylori"                 
##  [27] "Armania"                             
##  [28] "Armania_capitata"                    
##  [29] "Armania_curiosa"                     
##  [30] "Armania_pristina"                    
##  [31] "Armania_robusta"                     
##  [32] "Dolichomyrma_latipes"                
##  [33] "Dolichomyrma_longiceps"              
##  [34] "Khetania_mandibulata"                
##  [35] "Orapia_minor"                        
##  [36] "Orapia_rayneri"                      
##  [37] "Poneropterus_sphecoides"             
##  [38] "Pseudarmania_aberrans"               
##  [39] "Pseudarmania_rasnitsyni"             
##  [40] "Brownimecia_clavata"                 
##  [41] "Alloiomma_changweiensis"             
##  [42] "Alloiomma_differentialis"            
##  [43] "Asymphylomyrmex_balticus"            
##  [44] "Azteca"                              
##  [45] "Azteca_alpha"                        
##  [46] "Azteca_eumeces"                      
##  [47] "Chronomyrmex_medicinehatensis"       
##  [48] "Ctenobethylus_goepperti"             
##  [49] "Dolichoderinae"                      
##  [50] "Dolichoderus"                        
##  [51] "Dolichoderus_(Hypoclinea)_passalomma"
##  [52] "Dolichoderus_affectus"               
##  [53] "Dolichoderus_antiquus"               
##  [54] "Dolichoderus_balticus"               
##  [55] "Dolichoderus_brevicornis"            
##  [56] "Dolichoderus_brevipalpis"            
##  [57] "Dolichoderus_brevipennis"            
##  [58] "Dolichoderus_bruneti"                
##  [59] "Dolichoderus_caribbaeus"             
##  [60] "Dolichoderus_coquandi"               
##  [61] "Dolichoderus_cornutus"               
##  [62] "Dolichoderus_dibolius"               
##  [63] "Dolichoderus_dlusskyi"               
##  [64] "Dolichoderus_elegans"                
##  [65] "Dolichoderus_evolans"                
##  [66] "Dolichoderus_explicans"              
##  [67] "Dolichoderus_granulinotus"           
##  [68] "Dolichoderus_heeri"                  
##  [69] "Dolichoderus_jiaoyanshanensis"       
##  [70] "Dolichoderus_kohlsi"                 
##  [71] "Dolichoderus_kutscheri"              
##  [72] "Dolichoderus_kutschlinicus"          
##  [73] "Dolichoderus_lacinius"               
##  [74] "Dolichoderus_longipennis"            
##  [75] "Dolichoderus_longipilosus"           
##  [76] "Dolichoderus_lucidus"                
##  [77] "Dolichoderus_luridivenosus"          
##  [78] "Dolichoderus_mesosternalis"          
##  [79] "Dolichoderus_nanus"                  
##  [80] "Dolichoderus_obliteratus"            
##  [81] "Dolichoderus_oviformis"              
##  [82] "Dolichoderus_passalomma"             
##  [83] "Dolichoderus_perkovskyi"             
##  [84] "Dolichoderus_pilipes"                
##  [85] "Dolichoderus_pinguis"                
##  [86] "Dolichoderus_polessus"               
##  [87] "Dolichoderus_polonicus"              
##  [88] "Dolichoderus_primitivus"             
##  [89] "Dolichoderus_prolaminatus"           
##  [90] "Dolichoderus_punctatus"              
##  [91] "Dolichoderus_robustus"               
##  [92] "Dolichoderus_rohweri"                
##  [93] "Dolichoderus_sculpturatus"           
##  [94] "Dolichoderus_tauricus"               
##  [95] "Dolichoderus_tertiarius"             
##  [96] "Dolichoderus_transversipetiolaris"   
##  [97] "Dolichoderus_vectensis"              
##  [98] "Dolichoderus_vexillarius"            
##  [99] "Dolichoderus_vlaskini"               
## [100] "Dolichoderus_zherichini"             
## [101] "Elaeomyrmex_coloradensis"            
## [102] "Elaeomyrmex_gracilis"                
## [103] "Elaphrodites_mutatus"                
## [104] "Elaphrodites_scutulatus"             
## [105] "Eldermyrmex_oblongiceps"             
## [106] "Electromyrmex_klebsi"                
## [107] "Emplastus_antiquus"                  
## [108] "Emplastus_biamoensis"                
## [109] "Emplastus_britannicus"               
## [110] "Emplastus_dubius"                    
## [111] "Emplastus_elongatus"                 
## [112] "Emplastus_gurnetensis"               
## [113] "Emplastus_haueri"                    
## [114] "Emplastus_hypolithus"                
## [115] "Emplastus_kozlovi"                   
## [116] "Emplastus_macrops"                   
## [117] "Emplastus_miocenicus"                
## [118] "Emplastus_ocellus"                   
## [119] "Eotapinoma_compacta"                 
## [120] "Eotapinoma_gracilis"                 
## [121] "Eotapinoma_macalpini"                
## [122] "Eurymyrmex_geologicus"               
## [123] "Forelius"                            
## [124] "Gracilidris_humiloides"              
## [125] "Iridomyrmex"                         
## [126] "Iridomyrmex_shandongicus"            
## [127] "Kotshkorkia_laticeps"                
## [128] "Ktunaxia_jucunda"                    
## [129] "Leptomyrmex_neotropicus"             
## [130] "Leptomyrmula_maravignae"             
## [131] "Linepithema"                         
## [132] "Liometopum"                          
## [133] "Liometopum_bogdassarovi"             
## [134] "Liometopum_eremicum"                 
## [135] "Liometopum_imhoffii"                 
## [136] "Liometopum_incognitum"               
## [137] "Liometopum_lubricum"                 
## [138] "Liometopum_miocenicum"               
## [139] "Liometopum_oligocenicum"             
## [140] "Liometopum_potamophilum"             
## [141] "Liometopum_scudderi"                 
## [142] "Miomyrmex_impactus"                  
## [143] "Miomyrmex_striatus"                  
## [144] "Petraeomyrmex_minimus"               
## [145] "Proiridomyrmex_rotundatus"           
## [146] "Proiridomyrmex_vetulus"              
## [147] "Protazteca_capitata"                 
## [148] "Protazteca_elongata"                 
## [149] "Protazteca_eocenica"                 
## [150] "Protazteca_hendersoni"               
## [151] "Protazteca_quadrata"                 
## [152] "Tapinoma"                            
## [153] "Tapinoma_aberrans"                   
## [154] "Tapinoma_baculum"                    
## [155] "Tapinoma_electrinum"                 
## [156] "Tapinoma_minutissimum"               
## [157] "Tapinoma_troche"                     
## [158] "Technomyrmex_caritatis"              
## [159] "Technomyrmex_deletus"                
## [160] "Technomyrmex_hispaniolae"            
## [161] "Technomyrmex_septentrionalis"        
## [162] "Usomyrma_mirabilis"                  
## [163] "Yantaromyrmex_constrictus"           
## [164] "Yantaromyrmex_geinitzi"              
## [165] "Yantaromyrmex_intermedius"           
## [166] "Yantaromyrmex_mayrianum"             
## [167] "Yantaromyrmex_samlandicus"           
## [168] "Zherichinius_horribilis"             
## [169] "Zherichinius_rapax"                  
## [170] "Acanthostichus_hispaniolicus"        
## [171] "Cylindromyrmex_antillanus"           
## [172] "Cylindromyrmex_electrinus"           
## [173] "Cylindromyrmex_inopinatus"           
## [174] "Dorylinae"                           
## [175] "Lioponera"                           
## [176] "Neivamyrmex"                         
## [177] "Neivamyrmex_ectopus"                 
## [178] "Procerapachys_annosus"               
## [179] "Procerapachys_favosus"               
## [180] "Procerapachys_sulcatus"              
## [181] "Canapone_dentata"                    
## [182] "Ectatomma_gracile"                   
## [183] "Gnamptogenys_brunoi"                 
## [184] "Gnamptogenys_casca"                  
## [185] "Gnamptogenys_europaea"               
## [186] "Gnamptogenys_levinates"              
## [187] "Gnamptogenys_pristina"               
## [188] "Gnamptogenys_rohdendorfi"            
## [189] "Pseudectatomma_eocenica"             
## [190] "Pseudectatomma_striatula"            
## [191] "Rhytidoponera_gibsoni"               
## [192] "Rhytidoponera_kirghizorum"           
## [193] "Rhytidoponera_waipiata"              
## [194] "Titanomyrma_gigantea"                
## [195] "Titanomyrma_lubei"                   
## [196] "Titanomyrma_simillima"               
## [197] "Acropyga"                            
## [198] "Acropyga_glaesaria"                  
## [199] "Camponotini"                         
## [200] "Camponotites"                        
## [201] "Camponotites_kraussei"               
## [202] "Camponotites_macropterus"            
## [203] "Camponotites_silvestris"             
## [204] "Camponotites_steinbachi"             
## [205] "Camponotites_xiejiaheensis"          
## [206] "Camponotus"                          
## [207] "Camponotus_ambon"                    
## [208] "Camponotus_ampullosus"               
## [209] "Camponotus_cockerelli"               
## [210] "Camponotus_compactus"                
## [211] "Camponotus_crozei"                   
## [212] "Camponotus_curviansatus"             
## [213] "Camponotus_festinatus"               
## [214] "Camponotus_festinus"                 
## [215] "Camponotus_fuscipennis"              
## [216] "Camponotus_gracilis"                 
## [217] "Camponotus_heracleus"                
## [218] "Camponotus_herculeanus"              
## [219] "Camponotus_induratus"                
## [220] "Camponotus_lignitus"                 
## [221] "Camponotus_longiventris"             
## [222] "Camponotus_longus"                   
## [223] "Camponotus_luteus"                   
## [224] "Camponotus_mengei"                   
## [225] "Camponotus_microcephalus"            
## [226] "Camponotus_microthoracus"            
## [227] "Camponotus_mitis"                    
## [228] "Camponotus_novotnyi"                 
## [229] "Camponotus_obesus"                   
## [230] "Camponotus_oeningensis"              
## [231] "Camponotus_palaeopterus"             
## [232] "Camponotus_penninervis"              
## [233] "Camponotus_petrifactus"              
## [234] "Camponotus_pictus"                   
## [235] "Camponotus_pinguiculus"              
## [236] "Camponotus_plenus"                   
## [237] "Camponotus_shanwangensis"            
## [238] "Camponotus_theobaldi"                
## [239] "Camponotus_tokunagai"                
## [240] "Camponotus_ullrichi"                 
## [241] "Camponotus_vehemens"                 
## [242] "Camponotus_vetus"                    
## [243] "Cataglyphoides_constrictus"          
## [244] "Cataglyphoides_intermedius"          
## [245] "Chimaeromyrma_brachycephala"         
## [246] "Conoformica_bitterfeldiana"          
## [247] "Curtipalpulus_eocenicus"             
## [248] "Drymomyrmex_claripennis"             
## [249] "Drymomyrmex_fuscipennis"             
## [250] "Eoleptocerites_chinensis"            
## [251] "Eoleptocerites_fushunensis"          
## [252] "Eurytarsites_fushunensis"            
## [253] "Formica"                             
## [254] "Formica_alsatica"                    
## [255] "Formica_annosa"                      
## [256] "Formica_arcana"                      
## [257] "Formica_auxillacensis"               
## [258] "Formica_bauckhorni"                  
## [259] "Formica_biamoensis"                  
## [260] "Formica_buphthalma"                  
## [261] "Formica_cantalica"                   
## [262] "Formica_ceps"                        
## [263] "Formica_cockerelli"                  
## [264] "Formica_demersa"                     
## [265] "Formica_eoptera"                     
## [266] "Formica_flavifemoralis"              
## [267] "Formica_flori"                       
## [268] "Formica_fusca"                       
## [269] "Formica_gibbosa"                     
## [270] "Formica_globiventris"                
## [271] "Formica_grandis"                     
## [272] "Formica_gravida"                     
## [273] "Formica_gustawi"                     
## [274] "Formica_heteroptera"                 
## [275] "Formica_horrida"                     
## [276] "Formica_immersa"                     
## [277] "Formica_kutscheri"                   
## [278] "Formica_latinodosa"                  
## [279] "Formica_lavateri"                    
## [280] "Formica_linquensis"                  
## [281] "Formica_longicollis"                 
## [282] "Formica_lucida"                      
## [283] "Formica_luteola"                     
## [284] "Formica_macrocephala"                
## [285] "Formica_macrognatha"                 
## [286] "Formica_macrophthalma"               
## [287] "Formica_maculipennis"                
## [288] "Formica_martynovi"                   
## [289] "Formica_neorufibarbis"               
## [290] "Formica_nigra"                       
## [291] "Formica_obscura"                     
## [292] "Formica_orbata"                      
## [293] "Formica_ovala"                       
## [294] "Formica_palaeopolonica"              
## [295] "Formica_paleosibirica"               
## [296] "Formica_parexsecta"                  
## [297] "Formica_parvula"                     
## [298] "Formica_phaethusa"                   
## [299] "Formica_pitoni"                      
## [300] "Formica_primitiva"                   
## [301] "Formica_primordialis"                
## [302] "Formica_procera"                     
## [303] "Formica_pulchella"                   
## [304] "Formica_quadrata"                    
## [305] "Formica_radchenkoi"                  
## [306] "Formica_robusta"                     
## [307] "Formica_sepulta"                     
## [308] "Formica_serresi"                     
## [309] "Formica_seuberti"                    
## [310] "Formica_strangulata"                 
## [311] "Formica_surinamensis"                
## [312] "Formica_trigona"                     
## [313] "Formica_tripartita"                  
## [314] "Formica_ungeri"                      
## [315] "Formica_zherikhini"                  
## [316] "Formicinae"                          
## [317] "Fushuniformica_spinata"              
## [318] "Gesomyrmex_bremii"                   
## [319] "Gesomyrmex_breviceps"                
## [320] "Gesomyrmex_curiosus"                 
## [321] "Gesomyrmex_flavescens"               
## [322] "Gesomyrmex_germanicus"               
## [323] "Gesomyrmex_hoernesi"                 
## [324] "Gesomyrmex_incertus"                 
## [325] "Gesomyrmex_macrops"                  
## [326] "Gesomyrmex_magnus"                   
## [327] "Gesomyrmex_pulcher"                  
## [328] "Glaphyromyrmex_oligocenicus"         
## [329] "Heeridris_croaticus"                 
## [330] "Huaxiaformica_mallepetiolata"        
## [331] "Imhoffia_nigra"                      
## [332] "Imhoffia_pallida"                    
## [333] "Kyromyrma_neffi"                     
## [334] "Lasius"                              
## [335] "Lasius_anthracinus"                  
## [336] "Lasius_chambonensis"                 
## [337] "Lasius_crispus"                      
## [338] "Lasius_epicentrus"                   
## [339] "Lasius_globularis"                   
## [340] "Lasius_glom"                         
## [341] "Lasius_inflatus"                     
## [342] "Lasius_longaevus"                    
## [343] "Lasius_longipennis"                  
## [344] "Lasius_mordicus"                     
## [345] "Lasius_nemorivagus"                  
## [346] "Lasius_oblongus"                     
## [347] "Lasius_occultatus"                   
## [348] "Lasius_ophthalmicus"                 
## [349] "Lasius_peritulus"                    
## [350] "Lasius_pumilus"                      
## [351] "Lasius_punctulatus"                  
## [352] "Lasius_schiefferdeckeri"             
## [353] "Lasius_tertiarius"                   
## [354] "Lasius_truncatus"                    
## [355] "Lasius_validus"                      
## [356] "Lasius_vetulus"                      
## [357] "Leptogasteritus_capricornutes"       
## [358] "Leucotaphus_donisthorpei"            
## [359] "Leucotaphus_gurnetensis"             
## [360] "Liaoformica_longipetiolata"          
## [361] "Longiformica_dongzhouheensis"        
## [362] "Longiformica_guchengziensis"         
## [363] "Magnogasterites_curticornutus"       
## [364] "Myrmecorhynchus_novaeseelandiae"     
## [365] "Nylanderia_pygmaea"                  
## [366] "Nylanderia_vetula"                   
## [367] "Oecophylla_atavina"                  
## [368] "Oecophylla_bartoniana"               
## [369] "Oecophylla_brischkei"                
## [370] "Oecophylla_crassinoda"               
## [371] "Oecophylla_eckfeldiana"              
## [372] "Oecophylla_grandimandibula"          
## [373] "Oecophylla_leakeyi"                  
## [374] "Oecophylla_longiceps"                
## [375] "Oecophylla_megarche"                 
## [376] "Oecophylla_obesa"                    
## [377] "Oecophylla_praeclara"                
## [378] "Oecophylla_sicula"                   
## [379] "Oecophylla_superba"                  
## [380] "Orbicapitia_reticulata"              
## [381] "Ovalicapito_fushunensis"             
## [382] "Ovaligastrula_xilutianensis"         
## [383] "Plagiolepis_klinsmanni"              
## [384] "Plagiolepis_kuenowi"                 
## [385] "Plagiolepis_labilis"                 
## [386] "Plagiolepis_minutissima"             
## [387] "Plagiolepis_paradoxa"                
## [388] "Plagiolepis_singularis"              
## [389] "Plagiolepis_solitaria"               
## [390] "Plagiolepis_squamifera"              
## [391] "Plagiolepis_wheeleri"                
## [392] "Polyrhachis_annosus"                 
## [393] "Prenolepis_henschei"                 
## [394] "Prodimorphomyrmex_primigenius"       
## [395] "Protoformica_proformicoides"         
## [396] "Protomyrmica_atavia"                 
## [397] "Protrechina_carpenteri"              
## [398] "Pseudocamponotus_elkoanus"           
## [399] "Pseudolasius_boreus"                 
## [400] "Sicilomyrmex_corniger"               
## [401] "Sinoformica_longicapitata"           
## [402] "Sinotenuicapito_badis"               
## [403] "Wilsonia_liaoningensis"              
## [404] "Wilsonia_megagastrosa"               
## [405] "Zatania_electra"                     
## [406] "Formicium_berryi"                    
## [407] "Formicium_brodiei"

or

ant_data[[1]]
##   [1] "Agroecomyrmex_duisburgi"             
##   [2] "Eulithomyrmex_rugosus"               
##   [3] "Eulithomyrmex_striatus"              
##   [4] "Amblyoponinae"                       
##   [5] "Amblyoponini"                        
##   [6] "Casaleia_eocenica"                   
##   [7] "Casaleia_inversa"                    
##   [8] "Casaleia_longiventris"               
##   [9] "Casaleia_orientalis"                 
##  [10] "Myopopone_sinensis"                  
##  [11] "Stigmatomma_electrina"               
##  [12] "Stigmatomma_groehni"                 
##  [13] "Aneuretellus_deformis"               
##  [14] "Britaneuretus_anglicus"              
##  [15] "Burmomyrma_rossi"                    
##  [16] "Cananeuretus_occidentalis"           
##  [17] "Mianeuretus"                         
##  [18] "Mianeuretus_eocenicus"               
##  [19] "Mianeuretus_mirabilis"               
##  [20] "Paraneuretus_dubovikoffi"            
##  [21] "Paraneuretus_longicornis"            
##  [22] "Paraneuretus_tornquisti"             
##  [23] "Pityomyrmex_tornquisti"              
##  [24] "Protaneuretus_succineus"             
##  [25] "Archaeopone_kzylzharica"             
##  [26] "Archaeopone_taylori"                 
##  [27] "Armania"                             
##  [28] "Armania_capitata"                    
##  [29] "Armania_curiosa"                     
##  [30] "Armania_pristina"                    
##  [31] "Armania_robusta"                     
##  [32] "Dolichomyrma_latipes"                
##  [33] "Dolichomyrma_longiceps"              
##  [34] "Khetania_mandibulata"                
##  [35] "Orapia_minor"                        
##  [36] "Orapia_rayneri"                      
##  [37] "Poneropterus_sphecoides"             
##  [38] "Pseudarmania_aberrans"               
##  [39] "Pseudarmania_rasnitsyni"             
##  [40] "Brownimecia_clavata"                 
##  [41] "Alloiomma_changweiensis"             
##  [42] "Alloiomma_differentialis"            
##  [43] "Asymphylomyrmex_balticus"            
##  [44] "Azteca"                              
##  [45] "Azteca_alpha"                        
##  [46] "Azteca_eumeces"                      
##  [47] "Chronomyrmex_medicinehatensis"       
##  [48] "Ctenobethylus_goepperti"             
##  [49] "Dolichoderinae"                      
##  [50] "Dolichoderus"                        
##  [51] "Dolichoderus_(Hypoclinea)_passalomma"
##  [52] "Dolichoderus_affectus"               
##  [53] "Dolichoderus_antiquus"               
##  [54] "Dolichoderus_balticus"               
##  [55] "Dolichoderus_brevicornis"            
##  [56] "Dolichoderus_brevipalpis"            
##  [57] "Dolichoderus_brevipennis"            
##  [58] "Dolichoderus_bruneti"                
##  [59] "Dolichoderus_caribbaeus"             
##  [60] "Dolichoderus_coquandi"               
##  [61] "Dolichoderus_cornutus"               
##  [62] "Dolichoderus_dibolius"               
##  [63] "Dolichoderus_dlusskyi"               
##  [64] "Dolichoderus_elegans"                
##  [65] "Dolichoderus_evolans"                
##  [66] "Dolichoderus_explicans"              
##  [67] "Dolichoderus_granulinotus"           
##  [68] "Dolichoderus_heeri"                  
##  [69] "Dolichoderus_jiaoyanshanensis"       
##  [70] "Dolichoderus_kohlsi"                 
##  [71] "Dolichoderus_kutscheri"              
##  [72] "Dolichoderus_kutschlinicus"          
##  [73] "Dolichoderus_lacinius"               
##  [74] "Dolichoderus_longipennis"            
##  [75] "Dolichoderus_longipilosus"           
##  [76] "Dolichoderus_lucidus"                
##  [77] "Dolichoderus_luridivenosus"          
##  [78] "Dolichoderus_mesosternalis"          
##  [79] "Dolichoderus_nanus"                  
##  [80] "Dolichoderus_obliteratus"            
##  [81] "Dolichoderus_oviformis"              
##  [82] "Dolichoderus_passalomma"             
##  [83] "Dolichoderus_perkovskyi"             
##  [84] "Dolichoderus_pilipes"                
##  [85] "Dolichoderus_pinguis"                
##  [86] "Dolichoderus_polessus"               
##  [87] "Dolichoderus_polonicus"              
##  [88] "Dolichoderus_primitivus"             
##  [89] "Dolichoderus_prolaminatus"           
##  [90] "Dolichoderus_punctatus"              
##  [91] "Dolichoderus_robustus"               
##  [92] "Dolichoderus_rohweri"                
##  [93] "Dolichoderus_sculpturatus"           
##  [94] "Dolichoderus_tauricus"               
##  [95] "Dolichoderus_tertiarius"             
##  [96] "Dolichoderus_transversipetiolaris"   
##  [97] "Dolichoderus_vectensis"              
##  [98] "Dolichoderus_vexillarius"            
##  [99] "Dolichoderus_vlaskini"               
## [100] "Dolichoderus_zherichini"             
## [101] "Elaeomyrmex_coloradensis"            
## [102] "Elaeomyrmex_gracilis"                
## [103] "Elaphrodites_mutatus"                
## [104] "Elaphrodites_scutulatus"             
## [105] "Eldermyrmex_oblongiceps"             
## [106] "Electromyrmex_klebsi"                
## [107] "Emplastus_antiquus"                  
## [108] "Emplastus_biamoensis"                
## [109] "Emplastus_britannicus"               
## [110] "Emplastus_dubius"                    
## [111] "Emplastus_elongatus"                 
## [112] "Emplastus_gurnetensis"               
## [113] "Emplastus_haueri"                    
## [114] "Emplastus_hypolithus"                
## [115] "Emplastus_kozlovi"                   
## [116] "Emplastus_macrops"                   
## [117] "Emplastus_miocenicus"                
## [118] "Emplastus_ocellus"                   
## [119] "Eotapinoma_compacta"                 
## [120] "Eotapinoma_gracilis"                 
## [121] "Eotapinoma_macalpini"                
## [122] "Eurymyrmex_geologicus"               
## [123] "Forelius"                            
## [124] "Gracilidris_humiloides"              
## [125] "Iridomyrmex"                         
## [126] "Iridomyrmex_shandongicus"            
## [127] "Kotshkorkia_laticeps"                
## [128] "Ktunaxia_jucunda"                    
## [129] "Leptomyrmex_neotropicus"             
## [130] "Leptomyrmula_maravignae"             
## [131] "Linepithema"                         
## [132] "Liometopum"                          
## [133] "Liometopum_bogdassarovi"             
## [134] "Liometopum_eremicum"                 
## [135] "Liometopum_imhoffii"                 
## [136] "Liometopum_incognitum"               
## [137] "Liometopum_lubricum"                 
## [138] "Liometopum_miocenicum"               
## [139] "Liometopum_oligocenicum"             
## [140] "Liometopum_potamophilum"             
## [141] "Liometopum_scudderi"                 
## [142] "Miomyrmex_impactus"                  
## [143] "Miomyrmex_striatus"                  
## [144] "Petraeomyrmex_minimus"               
## [145] "Proiridomyrmex_rotundatus"           
## [146] "Proiridomyrmex_vetulus"              
## [147] "Protazteca_capitata"                 
## [148] "Protazteca_elongata"                 
## [149] "Protazteca_eocenica"                 
## [150] "Protazteca_hendersoni"               
## [151] "Protazteca_quadrata"                 
## [152] "Tapinoma"                            
## [153] "Tapinoma_aberrans"                   
## [154] "Tapinoma_baculum"                    
## [155] "Tapinoma_electrinum"                 
## [156] "Tapinoma_minutissimum"               
## [157] "Tapinoma_troche"                     
## [158] "Technomyrmex_caritatis"              
## [159] "Technomyrmex_deletus"                
## [160] "Technomyrmex_hispaniolae"            
## [161] "Technomyrmex_septentrionalis"        
## [162] "Usomyrma_mirabilis"                  
## [163] "Yantaromyrmex_constrictus"           
## [164] "Yantaromyrmex_geinitzi"              
## [165] "Yantaromyrmex_intermedius"           
## [166] "Yantaromyrmex_mayrianum"             
## [167] "Yantaromyrmex_samlandicus"           
## [168] "Zherichinius_horribilis"             
## [169] "Zherichinius_rapax"                  
## [170] "Acanthostichus_hispaniolicus"        
## [171] "Cylindromyrmex_antillanus"           
## [172] "Cylindromyrmex_electrinus"           
## [173] "Cylindromyrmex_inopinatus"           
## [174] "Dorylinae"                           
## [175] "Lioponera"                           
## [176] "Neivamyrmex"                         
## [177] "Neivamyrmex_ectopus"                 
## [178] "Procerapachys_annosus"               
## [179] "Procerapachys_favosus"               
## [180] "Procerapachys_sulcatus"              
## [181] "Canapone_dentata"                    
## [182] "Ectatomma_gracile"                   
## [183] "Gnamptogenys_brunoi"                 
## [184] "Gnamptogenys_casca"                  
## [185] "Gnamptogenys_europaea"               
## [186] "Gnamptogenys_levinates"              
## [187] "Gnamptogenys_pristina"               
## [188] "Gnamptogenys_rohdendorfi"            
## [189] "Pseudectatomma_eocenica"             
## [190] "Pseudectatomma_striatula"            
## [191] "Rhytidoponera_gibsoni"               
## [192] "Rhytidoponera_kirghizorum"           
## [193] "Rhytidoponera_waipiata"              
## [194] "Titanomyrma_gigantea"                
## [195] "Titanomyrma_lubei"                   
## [196] "Titanomyrma_simillima"               
## [197] "Acropyga"                            
## [198] "Acropyga_glaesaria"                  
## [199] "Camponotini"                         
## [200] "Camponotites"                        
## [201] "Camponotites_kraussei"               
## [202] "Camponotites_macropterus"            
## [203] "Camponotites_silvestris"             
## [204] "Camponotites_steinbachi"             
## [205] "Camponotites_xiejiaheensis"          
## [206] "Camponotus"                          
## [207] "Camponotus_ambon"                    
## [208] "Camponotus_ampullosus"               
## [209] "Camponotus_cockerelli"               
## [210] "Camponotus_compactus"                
## [211] "Camponotus_crozei"                   
## [212] "Camponotus_curviansatus"             
## [213] "Camponotus_festinatus"               
## [214] "Camponotus_festinus"                 
## [215] "Camponotus_fuscipennis"              
## [216] "Camponotus_gracilis"                 
## [217] "Camponotus_heracleus"                
## [218] "Camponotus_herculeanus"              
## [219] "Camponotus_induratus"                
## [220] "Camponotus_lignitus"                 
## [221] "Camponotus_longiventris"             
## [222] "Camponotus_longus"                   
## [223] "Camponotus_luteus"                   
## [224] "Camponotus_mengei"                   
## [225] "Camponotus_microcephalus"            
## [226] "Camponotus_microthoracus"            
## [227] "Camponotus_mitis"                    
## [228] "Camponotus_novotnyi"                 
## [229] "Camponotus_obesus"                   
## [230] "Camponotus_oeningensis"              
## [231] "Camponotus_palaeopterus"             
## [232] "Camponotus_penninervis"              
## [233] "Camponotus_petrifactus"              
## [234] "Camponotus_pictus"                   
## [235] "Camponotus_pinguiculus"              
## [236] "Camponotus_plenus"                   
## [237] "Camponotus_shanwangensis"            
## [238] "Camponotus_theobaldi"                
## [239] "Camponotus_tokunagai"                
## [240] "Camponotus_ullrichi"                 
## [241] "Camponotus_vehemens"                 
## [242] "Camponotus_vetus"                    
## [243] "Cataglyphoides_constrictus"          
## [244] "Cataglyphoides_intermedius"          
## [245] "Chimaeromyrma_brachycephala"         
## [246] "Conoformica_bitterfeldiana"          
## [247] "Curtipalpulus_eocenicus"             
## [248] "Drymomyrmex_claripennis"             
## [249] "Drymomyrmex_fuscipennis"             
## [250] "Eoleptocerites_chinensis"            
## [251] "Eoleptocerites_fushunensis"          
## [252] "Eurytarsites_fushunensis"            
## [253] "Formica"                             
## [254] "Formica_alsatica"                    
## [255] "Formica_annosa"                      
## [256] "Formica_arcana"                      
## [257] "Formica_auxillacensis"               
## [258] "Formica_bauckhorni"                  
## [259] "Formica_biamoensis"                  
## [260] "Formica_buphthalma"                  
## [261] "Formica_cantalica"                   
## [262] "Formica_ceps"                        
## [263] "Formica_cockerelli"                  
## [264] "Formica_demersa"                     
## [265] "Formica_eoptera"                     
## [266] "Formica_flavifemoralis"              
## [267] "Formica_flori"                       
## [268] "Formica_fusca"                       
## [269] "Formica_gibbosa"                     
## [270] "Formica_globiventris"                
## [271] "Formica_grandis"                     
## [272] "Formica_gravida"                     
## [273] "Formica_gustawi"                     
## [274] "Formica_heteroptera"                 
## [275] "Formica_horrida"                     
## [276] "Formica_immersa"                     
## [277] "Formica_kutscheri"                   
## [278] "Formica_latinodosa"                  
## [279] "Formica_lavateri"                    
## [280] "Formica_linquensis"                  
## [281] "Formica_longicollis"                 
## [282] "Formica_lucida"                      
## [283] "Formica_luteola"                     
## [284] "Formica_macrocephala"                
## [285] "Formica_macrognatha"                 
## [286] "Formica_macrophthalma"               
## [287] "Formica_maculipennis"                
## [288] "Formica_martynovi"                   
## [289] "Formica_neorufibarbis"               
## [290] "Formica_nigra"                       
## [291] "Formica_obscura"                     
## [292] "Formica_orbata"                      
## [293] "Formica_ovala"                       
## [294] "Formica_palaeopolonica"              
## [295] "Formica_paleosibirica"               
## [296] "Formica_parexsecta"                  
## [297] "Formica_parvula"                     
## [298] "Formica_phaethusa"                   
## [299] "Formica_pitoni"                      
## [300] "Formica_primitiva"                   
## [301] "Formica_primordialis"                
## [302] "Formica_procera"                     
## [303] "Formica_pulchella"                   
## [304] "Formica_quadrata"                    
## [305] "Formica_radchenkoi"                  
## [306] "Formica_robusta"                     
## [307] "Formica_sepulta"                     
## [308] "Formica_serresi"                     
## [309] "Formica_seuberti"                    
## [310] "Formica_strangulata"                 
## [311] "Formica_surinamensis"                
## [312] "Formica_trigona"                     
## [313] "Formica_tripartita"                  
## [314] "Formica_ungeri"                      
## [315] "Formica_zherikhini"                  
## [316] "Formicinae"                          
## [317] "Fushuniformica_spinata"              
## [318] "Gesomyrmex_bremii"                   
## [319] "Gesomyrmex_breviceps"                
## [320] "Gesomyrmex_curiosus"                 
## [321] "Gesomyrmex_flavescens"               
## [322] "Gesomyrmex_germanicus"               
## [323] "Gesomyrmex_hoernesi"                 
## [324] "Gesomyrmex_incertus"                 
## [325] "Gesomyrmex_macrops"                  
## [326] "Gesomyrmex_magnus"                   
## [327] "Gesomyrmex_pulcher"                  
## [328] "Glaphyromyrmex_oligocenicus"         
## [329] "Heeridris_croaticus"                 
## [330] "Huaxiaformica_mallepetiolata"        
## [331] "Imhoffia_nigra"                      
## [332] "Imhoffia_pallida"                    
## [333] "Kyromyrma_neffi"                     
## [334] "Lasius"                              
## [335] "Lasius_anthracinus"                  
## [336] "Lasius_chambonensis"                 
## [337] "Lasius_crispus"                      
## [338] "Lasius_epicentrus"                   
## [339] "Lasius_globularis"                   
## [340] "Lasius_glom"                         
## [341] "Lasius_inflatus"                     
## [342] "Lasius_longaevus"                    
## [343] "Lasius_longipennis"                  
## [344] "Lasius_mordicus"                     
## [345] "Lasius_nemorivagus"                  
## [346] "Lasius_oblongus"                     
## [347] "Lasius_occultatus"                   
## [348] "Lasius_ophthalmicus"                 
## [349] "Lasius_peritulus"                    
## [350] "Lasius_pumilus"                      
## [351] "Lasius_punctulatus"                  
## [352] "Lasius_schiefferdeckeri"             
## [353] "Lasius_tertiarius"                   
## [354] "Lasius_truncatus"                    
## [355] "Lasius_validus"                      
## [356] "Lasius_vetulus"                      
## [357] "Leptogasteritus_capricornutes"       
## [358] "Leucotaphus_donisthorpei"            
## [359] "Leucotaphus_gurnetensis"             
## [360] "Liaoformica_longipetiolata"          
## [361] "Longiformica_dongzhouheensis"        
## [362] "Longiformica_guchengziensis"         
## [363] "Magnogasterites_curticornutus"       
## [364] "Myrmecorhynchus_novaeseelandiae"     
## [365] "Nylanderia_pygmaea"                  
## [366] "Nylanderia_vetula"                   
## [367] "Oecophylla_atavina"                  
## [368] "Oecophylla_bartoniana"               
## [369] "Oecophylla_brischkei"                
## [370] "Oecophylla_crassinoda"               
## [371] "Oecophylla_eckfeldiana"              
## [372] "Oecophylla_grandimandibula"          
## [373] "Oecophylla_leakeyi"                  
## [374] "Oecophylla_longiceps"                
## [375] "Oecophylla_megarche"                 
## [376] "Oecophylla_obesa"                    
## [377] "Oecophylla_praeclara"                
## [378] "Oecophylla_sicula"                   
## [379] "Oecophylla_superba"                  
## [380] "Orbicapitia_reticulata"              
## [381] "Ovalicapito_fushunensis"             
## [382] "Ovaligastrula_xilutianensis"         
## [383] "Plagiolepis_klinsmanni"              
## [384] "Plagiolepis_kuenowi"                 
## [385] "Plagiolepis_labilis"                 
## [386] "Plagiolepis_minutissima"             
## [387] "Plagiolepis_paradoxa"                
## [388] "Plagiolepis_singularis"              
## [389] "Plagiolepis_solitaria"               
## [390] "Plagiolepis_squamifera"              
## [391] "Plagiolepis_wheeleri"                
## [392] "Polyrhachis_annosus"                 
## [393] "Prenolepis_henschei"                 
## [394] "Prodimorphomyrmex_primigenius"       
## [395] "Protoformica_proformicoides"         
## [396] "Protomyrmica_atavia"                 
## [397] "Protrechina_carpenteri"              
## [398] "Pseudocamponotus_elkoanus"           
## [399] "Pseudolasius_boreus"                 
## [400] "Sicilomyrmex_corniger"               
## [401] "Sinoformica_longicapitata"           
## [402] "Sinotenuicapito_badis"               
## [403] "Wilsonia_liaoningensis"              
## [404] "Wilsonia_megagastrosa"               
## [405] "Zatania_electra"                     
## [406] "Formicium_berryi"                    
## [407] "Formicium_brodiei"

In our first block of code, we call the dataframe object and use what is called indexing to get the first column. Now, you may be thinking, what is going on with the notation? The brackets indicate that we will be accessing a column. This may be somewhat surprising - that the language doesn’t start with one. It’s actually quite natural- you weren’t born at one year old, were you? But it still takes a little to get used to - programmers often verbally say the first item, but they mean the zeroeth item.

In our second block of code, we call the column by its name - specimen. This is a very natural way to access the data. We gave attributes of the data names, why not use them?

Challenge:

Try accessing other columns.

  • When will it be useful to access by name?
  • When will it not?

We can also select multiple columns at once using our column names.

## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.1 ──
##  ggplot2 3.3.5      purrr   0.3.4
##  tibble  3.1.6      dplyr   1.0.8
##  tidyr   1.2.0      stringr 1.4.0
##  readr   2.1.2      forcats 0.5.1
## Warning: package 'tidyr' was built under R version 4.0.5
## Warning: package 'readr' was built under R version 4.0.5
## Warning: package 'dplyr' was built under R version 4.0.5
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
ant_data %>% 
  select(specimen, tribe)
##                                 specimen        tribe
## 1                Agroecomyrmex_duisburgi         None
## 2                  Eulithomyrmex_rugosus         None
## 3                 Eulithomyrmex_striatus         None
## 4                          Amblyoponinae         None
## 5                           Amblyoponini Amblyoponini
## 6                      Casaleia_eocenica         None
## 7                       Casaleia_inversa         None
## 8                  Casaleia_longiventris         None
## 9                    Casaleia_orientalis         None
## 10                    Myopopone_sinensis         None
## 11                 Stigmatomma_electrina         None
## 12                   Stigmatomma_groehni         None
## 13                 Aneuretellus_deformis         None
## 14                Britaneuretus_anglicus         None
## 15                      Burmomyrma_rossi         None
## 16             Cananeuretus_occidentalis         None
## 17                           Mianeuretus         None
## 18                 Mianeuretus_eocenicus         None
## 19                 Mianeuretus_mirabilis         None
## 20              Paraneuretus_dubovikoffi         None
## 21              Paraneuretus_longicornis         None
## 22               Paraneuretus_tornquisti         None
## 23                Pityomyrmex_tornquisti         None
## 24               Protaneuretus_succineus         None
## 25               Archaeopone_kzylzharica         None
## 26                   Archaeopone_taylori         None
## 27                               Armania         None
## 28                      Armania_capitata         None
## 29                       Armania_curiosa         None
## 30                      Armania_pristina         None
## 31                       Armania_robusta         None
## 32                  Dolichomyrma_latipes         None
## 33                Dolichomyrma_longiceps         None
## 34                  Khetania_mandibulata         None
## 35                          Orapia_minor         None
## 36                        Orapia_rayneri         None
## 37               Poneropterus_sphecoides         None
## 38                 Pseudarmania_aberrans         None
## 39               Pseudarmania_rasnitsyni         None
## 40                   Brownimecia_clavata             
## 41               Alloiomma_changweiensis         None
## 42              Alloiomma_differentialis         None
## 43              Asymphylomyrmex_balticus         None
## 44                                Azteca             
## 45                          Azteca_alpha             
## 46                        Azteca_eumeces             
## 47         Chronomyrmex_medicinehatensis         None
## 48               Ctenobethylus_goepperti         None
## 49                        Dolichoderinae         None
## 50                          Dolichoderus         None
## 51  Dolichoderus_(Hypoclinea)_passalomma         None
## 52                 Dolichoderus_affectus         None
## 53                 Dolichoderus_antiquus         None
## 54                 Dolichoderus_balticus         None
## 55              Dolichoderus_brevicornis         None
## 56              Dolichoderus_brevipalpis         None
## 57              Dolichoderus_brevipennis         None
## 58                  Dolichoderus_bruneti         None
## 59               Dolichoderus_caribbaeus         None
## 60                 Dolichoderus_coquandi         None
## 61                 Dolichoderus_cornutus         None
## 62                 Dolichoderus_dibolius         None
## 63                 Dolichoderus_dlusskyi         None
## 64                  Dolichoderus_elegans         None
## 65                  Dolichoderus_evolans         None
## 66                Dolichoderus_explicans         None
## 67             Dolichoderus_granulinotus         None
## 68                    Dolichoderus_heeri         None
## 69         Dolichoderus_jiaoyanshanensis         None
## 70                   Dolichoderus_kohlsi         None
## 71                Dolichoderus_kutscheri         None
## 72            Dolichoderus_kutschlinicus         None
## 73                 Dolichoderus_lacinius         None
## 74              Dolichoderus_longipennis         None
## 75             Dolichoderus_longipilosus         None
## 76                  Dolichoderus_lucidus         None
## 77            Dolichoderus_luridivenosus         None
## 78            Dolichoderus_mesosternalis         None
## 79                    Dolichoderus_nanus         None
## 80              Dolichoderus_obliteratus         None
## 81                Dolichoderus_oviformis         None
## 82               Dolichoderus_passalomma         None
## 83               Dolichoderus_perkovskyi         None
## 84                  Dolichoderus_pilipes         None
## 85                  Dolichoderus_pinguis         None
## 86                 Dolichoderus_polessus         None
## 87                Dolichoderus_polonicus         None
## 88               Dolichoderus_primitivus         None
## 89             Dolichoderus_prolaminatus         None
## 90                Dolichoderus_punctatus         None
## 91                 Dolichoderus_robustus         None
## 92                  Dolichoderus_rohweri         None
## 93             Dolichoderus_sculpturatus         None
## 94                 Dolichoderus_tauricus         None
## 95               Dolichoderus_tertiarius         None
## 96     Dolichoderus_transversipetiolaris         None
## 97                Dolichoderus_vectensis         None
## 98              Dolichoderus_vexillarius         None
## 99                 Dolichoderus_vlaskini         None
## 100              Dolichoderus_zherichini         None
## 101             Elaeomyrmex_coloradensis         None
## 102                 Elaeomyrmex_gracilis         None
## 103                 Elaphrodites_mutatus         None
## 104              Elaphrodites_scutulatus         None
## 105              Eldermyrmex_oblongiceps         None
## 106                 Electromyrmex_klebsi         None
## 107                   Emplastus_antiquus         None
## 108                 Emplastus_biamoensis         None
## 109                Emplastus_britannicus         None
## 110                     Emplastus_dubius         None
## 111                  Emplastus_elongatus         None
## 112                Emplastus_gurnetensis         None
## 113                     Emplastus_haueri         None
## 114                 Emplastus_hypolithus         None
## 115                    Emplastus_kozlovi         None
## 116                    Emplastus_macrops         None
## 117                 Emplastus_miocenicus         None
## 118                    Emplastus_ocellus         None
## 119                  Eotapinoma_compacta         None
## 120                  Eotapinoma_gracilis         None
## 121                 Eotapinoma_macalpini         None
## 122                Eurymyrmex_geologicus         None
## 123                             Forelius         None
## 124               Gracilidris_humiloides         None
## 125                          Iridomyrmex         None
## 126             Iridomyrmex_shandongicus         None
## 127                 Kotshkorkia_laticeps         None
## 128                     Ktunaxia_jucunda         None
## 129              Leptomyrmex_neotropicus         None
## 130              Leptomyrmula_maravignae         None
## 131                          Linepithema         None
## 132                           Liometopum         None
## 133              Liometopum_bogdassarovi         None
## 134                  Liometopum_eremicum         None
## 135                  Liometopum_imhoffii         None
## 136                Liometopum_incognitum         None
## 137                  Liometopum_lubricum         None
## 138                Liometopum_miocenicum         None
## 139              Liometopum_oligocenicum         None
## 140              Liometopum_potamophilum         None
## 141                  Liometopum_scudderi         None
## 142                   Miomyrmex_impactus         None
## 143                   Miomyrmex_striatus         None
## 144                Petraeomyrmex_minimus         None
## 145            Proiridomyrmex_rotundatus         None
## 146               Proiridomyrmex_vetulus         None
## 147                  Protazteca_capitata         None
## 148                  Protazteca_elongata         None
## 149                  Protazteca_eocenica         None
## 150                Protazteca_hendersoni         None
## 151                  Protazteca_quadrata         None
## 152                             Tapinoma         None
## 153                    Tapinoma_aberrans         None
## 154                     Tapinoma_baculum         None
## 155                  Tapinoma_electrinum         None
## 156                Tapinoma_minutissimum         None
## 157                      Tapinoma_troche         None
## 158               Technomyrmex_caritatis         None
## 159                 Technomyrmex_deletus         None
## 160             Technomyrmex_hispaniolae         None
## 161         Technomyrmex_septentrionalis         None
## 162                   Usomyrma_mirabilis         None
## 163            Yantaromyrmex_constrictus         None
## 164               Yantaromyrmex_geinitzi         None
## 165            Yantaromyrmex_intermedius         None
## 166              Yantaromyrmex_mayrianum         None
## 167            Yantaromyrmex_samlandicus         None
## 168              Zherichinius_horribilis         None
## 169                   Zherichinius_rapax         None
## 170         Acanthostichus_hispaniolicus             
## 171            Cylindromyrmex_antillanus         None
## 172            Cylindromyrmex_electrinus         None
## 173            Cylindromyrmex_inopinatus         None
## 174                            Dorylinae         None
## 175                            Lioponera         None
## 176                          Neivamyrmex         None
## 177                  Neivamyrmex_ectopus         None
## 178                Procerapachys_annosus         None
## 179                Procerapachys_favosus         None
## 180               Procerapachys_sulcatus         None
## 181                     Canapone_dentata         None
## 182                    Ectatomma_gracile             
## 183                  Gnamptogenys_brunoi             
## 184                   Gnamptogenys_casca             
## 185                Gnamptogenys_europaea             
## 186               Gnamptogenys_levinates             
## 187                Gnamptogenys_pristina             
## 188             Gnamptogenys_rohdendorfi             
## 189              Pseudectatomma_eocenica         None
## 190             Pseudectatomma_striatula         None
## 191                Rhytidoponera_gibsoni         None
## 192            Rhytidoponera_kirghizorum         None
## 193               Rhytidoponera_waipiata         None
## 194                 Titanomyrma_gigantea         None
## 195                    Titanomyrma_lubei         None
## 196                Titanomyrma_simillima         None
## 197                             Acropyga             
## 198                   Acropyga_glaesaria             
## 199                          Camponotini  Camponotini
## 200                         Camponotites         None
## 201                Camponotites_kraussei         None
## 202             Camponotites_macropterus         None
## 203              Camponotites_silvestris         None
## 204              Camponotites_steinbachi         None
## 205           Camponotites_xiejiaheensis         None
## 206                           Camponotus         None
## 207                     Camponotus_ambon         None
## 208                Camponotus_ampullosus         None
## 209                Camponotus_cockerelli         None
## 210                 Camponotus_compactus         None
## 211                    Camponotus_crozei         None
## 212              Camponotus_curviansatus         None
## 213                Camponotus_festinatus         None
## 214                  Camponotus_festinus         None
## 215               Camponotus_fuscipennis         None
## 216                  Camponotus_gracilis         None
## 217                 Camponotus_heracleus         None
## 218               Camponotus_herculeanus         None
## 219                 Camponotus_induratus         None
## 220                  Camponotus_lignitus         None
## 221              Camponotus_longiventris         None
## 222                    Camponotus_longus         None
## 223                    Camponotus_luteus         None
## 224                    Camponotus_mengei         None
## 225             Camponotus_microcephalus         None
## 226             Camponotus_microthoracus         None
## 227                     Camponotus_mitis         None
## 228                  Camponotus_novotnyi         None
## 229                    Camponotus_obesus         None
## 230               Camponotus_oeningensis         None
## 231              Camponotus_palaeopterus         None
## 232               Camponotus_penninervis         None
## 233               Camponotus_petrifactus         None
## 234                    Camponotus_pictus         None
## 235               Camponotus_pinguiculus         None
## 236                    Camponotus_plenus         None
## 237             Camponotus_shanwangensis         None
## 238                 Camponotus_theobaldi         None
## 239                 Camponotus_tokunagai         None
## 240                  Camponotus_ullrichi         None
## 241                  Camponotus_vehemens         None
## 242                     Camponotus_vetus         None
## 243           Cataglyphoides_constrictus         None
## 244           Cataglyphoides_intermedius         None
## 245          Chimaeromyrma_brachycephala         None
## 246           Conoformica_bitterfeldiana         None
## 247              Curtipalpulus_eocenicus         None
## 248              Drymomyrmex_claripennis         None
## 249              Drymomyrmex_fuscipennis         None
## 250             Eoleptocerites_chinensis         None
## 251           Eoleptocerites_fushunensis         None
## 252             Eurytarsites_fushunensis         None
## 253                              Formica         None
## 254                     Formica_alsatica         None
## 255                       Formica_annosa         None
## 256                       Formica_arcana         None
## 257                Formica_auxillacensis         None
## 258                   Formica_bauckhorni         None
## 259                   Formica_biamoensis         None
## 260                   Formica_buphthalma         None
## 261                    Formica_cantalica         None
## 262                         Formica_ceps         None
## 263                   Formica_cockerelli         None
## 264                      Formica_demersa         None
## 265                      Formica_eoptera         None
## 266               Formica_flavifemoralis         None
## 267                        Formica_flori         None
## 268                        Formica_fusca         None
## 269                      Formica_gibbosa         None
## 270                 Formica_globiventris         None
## 271                      Formica_grandis         None
## 272                      Formica_gravida         None
## 273                      Formica_gustawi         None
## 274                  Formica_heteroptera         None
## 275                      Formica_horrida         None
## 276                      Formica_immersa         None
## 277                    Formica_kutscheri         None
## 278                   Formica_latinodosa         None
## 279                     Formica_lavateri         None
## 280                   Formica_linquensis         None
## 281                  Formica_longicollis         None
## 282                       Formica_lucida         None
## 283                      Formica_luteola         None
## 284                 Formica_macrocephala         None
## 285                  Formica_macrognatha         None
## 286                Formica_macrophthalma         None
## 287                 Formica_maculipennis         None
## 288                    Formica_martynovi         None
## 289                Formica_neorufibarbis         None
## 290                        Formica_nigra         None
## 291                      Formica_obscura         None
## 292                       Formica_orbata         None
## 293                        Formica_ovala         None
## 294               Formica_palaeopolonica         None
## 295                Formica_paleosibirica         None
## 296                   Formica_parexsecta         None
## 297                      Formica_parvula         None
## 298                    Formica_phaethusa         None
## 299                       Formica_pitoni         None
## 300                    Formica_primitiva         None
## 301                 Formica_primordialis         None
## 302                      Formica_procera         None
## 303                    Formica_pulchella         None
## 304                     Formica_quadrata         None
## 305                   Formica_radchenkoi         None
## 306                      Formica_robusta         None
## 307                      Formica_sepulta         None
## 308                      Formica_serresi         None
## 309                     Formica_seuberti         None
## 310                  Formica_strangulata         None
## 311                 Formica_surinamensis         None
## 312                      Formica_trigona         None
## 313                   Formica_tripartita         None
## 314                       Formica_ungeri         None
## 315                   Formica_zherikhini         None
## 316                           Formicinae         None
## 317               Fushuniformica_spinata         None
## 318                    Gesomyrmex_bremii         None
## 319                 Gesomyrmex_breviceps         None
## 320                  Gesomyrmex_curiosus         None
## 321                Gesomyrmex_flavescens         None
## 322                Gesomyrmex_germanicus         None
## 323                  Gesomyrmex_hoernesi         None
## 324                  Gesomyrmex_incertus         None
## 325                   Gesomyrmex_macrops         None
## 326                    Gesomyrmex_magnus         None
## 327                   Gesomyrmex_pulcher         None
## 328          Glaphyromyrmex_oligocenicus         None
## 329                  Heeridris_croaticus         None
## 330         Huaxiaformica_mallepetiolata         None
## 331                       Imhoffia_nigra         None
## 332                     Imhoffia_pallida         None
## 333                      Kyromyrma_neffi         None
## 334                               Lasius         None
## 335                   Lasius_anthracinus         None
## 336                  Lasius_chambonensis         None
## 337                       Lasius_crispus         None
## 338                    Lasius_epicentrus         None
## 339                    Lasius_globularis         None
## 340                          Lasius_glom         None
## 341                      Lasius_inflatus         None
## 342                     Lasius_longaevus         None
## 343                   Lasius_longipennis         None
## 344                      Lasius_mordicus         None
## 345                   Lasius_nemorivagus         None
## 346                      Lasius_oblongus         None
## 347                    Lasius_occultatus         None
## 348                  Lasius_ophthalmicus         None
## 349                     Lasius_peritulus         None
## 350                       Lasius_pumilus         None
## 351                   Lasius_punctulatus         None
## 352              Lasius_schiefferdeckeri         None
## 353                    Lasius_tertiarius         None
## 354                     Lasius_truncatus         None
## 355                       Lasius_validus         None
## 356                       Lasius_vetulus         None
## 357        Leptogasteritus_capricornutes         None
## 358             Leucotaphus_donisthorpei         None
## 359              Leucotaphus_gurnetensis         None
## 360           Liaoformica_longipetiolata         None
## 361         Longiformica_dongzhouheensis         None
## 362          Longiformica_guchengziensis         None
## 363        Magnogasterites_curticornutus         None
## 364      Myrmecorhynchus_novaeseelandiae         None
## 365                   Nylanderia_pygmaea         None
## 366                    Nylanderia_vetula         None
## 367                   Oecophylla_atavina         None
## 368                Oecophylla_bartoniana         None
## 369                 Oecophylla_brischkei         None
## 370                Oecophylla_crassinoda         None
## 371               Oecophylla_eckfeldiana         None
## 372           Oecophylla_grandimandibula         None
## 373                   Oecophylla_leakeyi         None
## 374                 Oecophylla_longiceps         None
## 375                  Oecophylla_megarche         None
## 376                     Oecophylla_obesa         None
## 377                 Oecophylla_praeclara         None
## 378                    Oecophylla_sicula         None
## 379                   Oecophylla_superba         None
## 380               Orbicapitia_reticulata         None
## 381              Ovalicapito_fushunensis         None
## 382          Ovaligastrula_xilutianensis         None
## 383               Plagiolepis_klinsmanni         None
## 384                  Plagiolepis_kuenowi         None
## 385                  Plagiolepis_labilis         None
## 386              Plagiolepis_minutissima         None
## 387                 Plagiolepis_paradoxa         None
## 388               Plagiolepis_singularis         None
## 389                Plagiolepis_solitaria         None
## 390               Plagiolepis_squamifera         None
## 391                 Plagiolepis_wheeleri         None
## 392                  Polyrhachis_annosus         None
## 393                  Prenolepis_henschei             
## 394        Prodimorphomyrmex_primigenius         None
## 395          Protoformica_proformicoides         None
## 396                  Protomyrmica_atavia         None
## 397               Protrechina_carpenteri         None
## 398            Pseudocamponotus_elkoanus         None
## 399                  Pseudolasius_boreus         None
## 400                Sicilomyrmex_corniger         None
## 401            Sinoformica_longicapitata         None
## 402                Sinotenuicapito_badis         None
## 403               Wilsonia_liaoningensis         None
## 404                Wilsonia_megagastrosa         None
## 405                      Zatania_electra         None
## 406                     Formicium_berryi         None
## 407                    Formicium_brodiei         None

Selecting rows of data is also possible. The below code grab all rows in the fifth and sixth columns of the dataframe:

ant_data[5:6]
##                 genus fossil
## 1       Agroecomyrmex    Yes
## 2       Eulithomyrmex    Yes
## 3       Eulithomyrmex    Yes
## 4                None    Yes
## 5        Amblyoponini    Yes
## 6            Casaleia    Yes
## 7            Casaleia    Yes
## 8            Casaleia    Yes
## 9            Casaleia    Yes
## 10          Myopopone    Yes
## 11        Stigmatomma    Yes
## 12        Stigmatomma    Yes
## 13       Aneuretellus    Yes
## 14      Britaneuretus    Yes
## 15         Burmomyrma    Yes
## 16       Cananeuretus    Yes
## 17        Mianeuretus    Yes
## 18        Mianeuretus    Yes
## 19        Mianeuretus    Yes
## 20       Paraneuretus    Yes
## 21       Paraneuretus    Yes
## 22       Paraneuretus    Yes
## 23        Pityomyrmex    Yes
## 24      Protaneuretus    Yes
## 25        Archaeopone    Yes
## 26        Archaeopone    Yes
## 27            Armania    Yes
## 28            Armania    Yes
## 29            Armania    Yes
## 30            Armania    Yes
## 31            Armania    Yes
## 32       Dolichomyrma    Yes
## 33       Dolichomyrma    Yes
## 34           Khetania    Yes
## 35             Orapia    Yes
## 36             Orapia    Yes
## 37       Poneropterus    Yes
## 38       Pseudarmania    Yes
## 39       Pseudarmania    Yes
## 40        Brownimecia    Yes
## 41          Alloiomma    Yes
## 42          Alloiomma    Yes
## 43    Asymphylomyrmex    Yes
## 44             Azteca    Yes
## 45             Azteca    Yes
## 46             Azteca    Yes
## 47       Chronomyrmex    Yes
## 48      Ctenobethylus    Yes
## 49               None    Yes
## 50       Dolichoderus    Yes
## 51       Dolichoderus    Yes
## 52       Dolichoderus    Yes
## 53       Dolichoderus    Yes
## 54       Dolichoderus    Yes
## 55       Dolichoderus    Yes
## 56       Dolichoderus    Yes
## 57       Dolichoderus    Yes
## 58       Dolichoderus    Yes
## 59       Dolichoderus    Yes
## 60       Dolichoderus    Yes
## 61       Dolichoderus    Yes
## 62       Dolichoderus    Yes
## 63       Dolichoderus    Yes
## 64       Dolichoderus    Yes
## 65       Dolichoderus    Yes
## 66       Dolichoderus    Yes
## 67       Dolichoderus    Yes
## 68       Dolichoderus    Yes
## 69       Dolichoderus    Yes
## 70       Dolichoderus    Yes
## 71       Dolichoderus    Yes
## 72       Dolichoderus    Yes
## 73       Dolichoderus    Yes
## 74       Dolichoderus    Yes
## 75       Dolichoderus    Yes
## 76       Dolichoderus    Yes
## 77       Dolichoderus    Yes
## 78       Dolichoderus    Yes
## 79       Dolichoderus    Yes
## 80       Dolichoderus    Yes
## 81       Dolichoderus    Yes
## 82       Dolichoderus    Yes
## 83       Dolichoderus    Yes
## 84       Dolichoderus    Yes
## 85       Dolichoderus    Yes
## 86       Dolichoderus    Yes
## 87       Dolichoderus    Yes
## 88       Dolichoderus    Yes
## 89       Dolichoderus    Yes
## 90       Dolichoderus    Yes
## 91       Dolichoderus    Yes
## 92       Dolichoderus    Yes
## 93       Dolichoderus    Yes
## 94       Dolichoderus    Yes
## 95       Dolichoderus    Yes
## 96       Dolichoderus    Yes
## 97       Dolichoderus    Yes
## 98       Dolichoderus    Yes
## 99       Dolichoderus    Yes
## 100      Dolichoderus    Yes
## 101       Elaeomyrmex    Yes
## 102       Elaeomyrmex    Yes
## 103      Elaphrodites    Yes
## 104      Elaphrodites    Yes
## 105       Eldermyrmex    Yes
## 106     Electromyrmex    Yes
## 107         Emplastus    Yes
## 108         Emplastus    Yes
## 109         Emplastus    Yes
## 110         Emplastus    Yes
## 111         Emplastus    Yes
## 112         Emplastus    Yes
## 113         Emplastus    Yes
## 114         Emplastus    Yes
## 115         Emplastus    Yes
## 116         Emplastus    Yes
## 117         Emplastus    Yes
## 118         Emplastus    Yes
## 119        Eotapinoma    Yes
## 120        Eotapinoma    Yes
## 121        Eotapinoma    Yes
## 122        Eurymyrmex    Yes
## 123          Forelius    Yes
## 124       Gracilidris    Yes
## 125       Iridomyrmex    Yes
## 126       Iridomyrmex    Yes
## 127       Kotshkorkia    Yes
## 128          Ktunaxia    Yes
## 129       Leptomyrmex    Yes
## 130      Leptomyrmula    Yes
## 131       Linepithema    Yes
## 132        Liometopum    Yes
## 133        Liometopum    Yes
## 134        Liometopum    Yes
## 135        Liometopum    Yes
## 136        Liometopum    Yes
## 137        Liometopum    Yes
## 138        Liometopum    Yes
## 139        Liometopum    Yes
## 140        Liometopum    Yes
## 141        Liometopum    Yes
## 142         Miomyrmex    Yes
## 143         Miomyrmex    Yes
## 144     Petraeomyrmex    Yes
## 145    Proiridomyrmex    Yes
## 146    Proiridomyrmex    Yes
## 147        Protazteca    Yes
## 148        Protazteca    Yes
## 149        Protazteca    Yes
## 150        Protazteca    Yes
## 151        Protazteca    Yes
## 152          Tapinoma    Yes
## 153          Tapinoma    Yes
## 154          Tapinoma    Yes
## 155          Tapinoma    Yes
## 156          Tapinoma    Yes
## 157          Tapinoma    Yes
## 158      Technomyrmex    Yes
## 159      Technomyrmex    Yes
## 160      Technomyrmex    Yes
## 161      Technomyrmex    Yes
## 162          Usomyrma    Yes
## 163     Yantaromyrmex    Yes
## 164     Yantaromyrmex    Yes
## 165     Yantaromyrmex    Yes
## 166     Yantaromyrmex    Yes
## 167     Yantaromyrmex    Yes
## 168      Zherichinius    Yes
## 169      Zherichinius    Yes
## 170    Acanthostichus    Yes
## 171    Cylindromyrmex    Yes
## 172    Cylindromyrmex    Yes
## 173    Cylindromyrmex    Yes
## 174              None    Yes
## 175         Lioponera    Yes
## 176       Neivamyrmex    Yes
## 177       Neivamyrmex    Yes
## 178     Procerapachys    Yes
## 179     Procerapachys    Yes
## 180     Procerapachys    Yes
## 181          Canapone    Yes
## 182         Ectatomma    Yes
## 183      Gnamptogenys    Yes
## 184      Gnamptogenys    Yes
## 185      Gnamptogenys    Yes
## 186      Gnamptogenys    Yes
## 187      Gnamptogenys    Yes
## 188      Gnamptogenys    Yes
## 189    Pseudectatomma    Yes
## 190    Pseudectatomma    Yes
## 191     Rhytidoponera    Yes
## 192     Rhytidoponera    Yes
## 193     Rhytidoponera    Yes
## 194       Titanomyrma    Yes
## 195       Titanomyrma    Yes
## 196       Titanomyrma    Yes
## 197          Acropyga    Yes
## 198          Acropyga    Yes
## 199              None    Yes
## 200      Camponotites    Yes
## 201      Camponotites    Yes
## 202      Camponotites    Yes
## 203      Camponotites    Yes
## 204      Camponotites    Yes
## 205      Camponotites    Yes
## 206        Camponotus    Yes
## 207        Camponotus    Yes
## 208        Camponotus    Yes
## 209        Camponotus    Yes
## 210        Camponotus    Yes
## 211        Camponotus    Yes
## 212        Camponotus    Yes
## 213        Camponotus    Yes
## 214        Camponotus    Yes
## 215        Camponotus    Yes
## 216        Camponotus    Yes
## 217        Camponotus    Yes
## 218        Camponotus    Yes
## 219        Camponotus    Yes
## 220        Camponotus    Yes
## 221        Camponotus    Yes
## 222        Camponotus    Yes
## 223        Camponotus    Yes
## 224        Camponotus    Yes
## 225        Camponotus    Yes
## 226        Camponotus    Yes
## 227        Camponotus    Yes
## 228        Camponotus    Yes
## 229        Camponotus    Yes
## 230        Camponotus    Yes
## 231        Camponotus    Yes
## 232        Camponotus    Yes
## 233        Camponotus    Yes
## 234        Camponotus    Yes
## 235        Camponotus    Yes
## 236        Camponotus    Yes
## 237        Camponotus    Yes
## 238        Camponotus    Yes
## 239        Camponotus    Yes
## 240        Camponotus    Yes
## 241        Camponotus    Yes
## 242        Camponotus    Yes
## 243    Cataglyphoides    Yes
## 244    Cataglyphoides    Yes
## 245     Chimaeromyrma    Yes
## 246       Conoformica    Yes
## 247     Curtipalpulus    Yes
## 248       Drymomyrmex    Yes
## 249       Drymomyrmex    Yes
## 250    Eoleptocerites    Yes
## 251    Eoleptocerites    Yes
## 252      Eurytarsites    Yes
## 253           Formica    Yes
## 254           Formica    Yes
## 255           Formica    Yes
## 256           Formica    Yes
## 257           Formica    Yes
## 258           Formica    Yes
## 259           Formica    Yes
## 260           Formica    Yes
## 261           Formica    Yes
## 262           Formica    Yes
## 263           Formica    Yes
## 264           Formica    Yes
## 265           Formica    Yes
## 266           Formica    Yes
## 267           Formica    Yes
## 268           Formica    Yes
## 269           Formica    Yes
## 270           Formica    Yes
## 271           Formica    Yes
## 272           Formica    Yes
## 273           Formica    Yes
## 274           Formica    Yes
## 275           Formica    Yes
## 276           Formica    Yes
## 277           Formica    Yes
## 278           Formica    Yes
## 279           Formica    Yes
## 280           Formica    Yes
## 281           Formica    Yes
## 282           Formica    Yes
## 283           Formica    Yes
## 284           Formica    Yes
## 285           Formica    Yes
## 286           Formica    Yes
## 287           Formica    Yes
## 288           Formica    Yes
## 289           Formica    Yes
## 290           Formica    Yes
## 291           Formica    Yes
## 292           Formica    Yes
## 293           Formica    Yes
## 294           Formica    Yes
## 295           Formica    Yes
## 296           Formica    Yes
## 297           Formica    Yes
## 298           Formica    Yes
## 299           Formica    Yes
## 300           Formica    Yes
## 301           Formica    Yes
## 302           Formica    Yes
## 303           Formica    Yes
## 304           Formica    Yes
## 305           Formica    Yes
## 306           Formica    Yes
## 307           Formica    Yes
## 308           Formica    Yes
## 309           Formica    Yes
## 310           Formica    Yes
## 311           Formica    Yes
## 312           Formica    Yes
## 313           Formica    Yes
## 314           Formica    Yes
## 315           Formica    Yes
## 316              None    Yes
## 317    Fushuniformica    Yes
## 318        Gesomyrmex    Yes
## 319        Gesomyrmex    Yes
## 320        Gesomyrmex    Yes
## 321        Gesomyrmex    Yes
## 322        Gesomyrmex    Yes
## 323        Gesomyrmex    Yes
## 324        Gesomyrmex    Yes
## 325        Gesomyrmex    Yes
## 326        Gesomyrmex    Yes
## 327        Gesomyrmex    Yes
## 328    Glaphyromyrmex    Yes
## 329         Heeridris    Yes
## 330     Huaxiaformica    Yes
## 331          Imhoffia    Yes
## 332          Imhoffia    Yes
## 333         Kyromyrma    Yes
## 334            Lasius    Yes
## 335            Lasius    Yes
## 336            Lasius    Yes
## 337            Lasius    Yes
## 338            Lasius    Yes
## 339            Lasius    Yes
## 340            Lasius    Yes
## 341            Lasius    Yes
## 342            Lasius    Yes
## 343            Lasius    Yes
## 344            Lasius    Yes
## 345            Lasius    Yes
## 346            Lasius    Yes
## 347            Lasius    Yes
## 348            Lasius    Yes
## 349            Lasius    Yes
## 350            Lasius    Yes
## 351            Lasius    Yes
## 352            Lasius    Yes
## 353            Lasius    Yes
## 354            Lasius    Yes
## 355            Lasius    Yes
## 356            Lasius    Yes
## 357   Leptogasteritus    Yes
## 358       Leucotaphus    Yes
## 359       Leucotaphus    Yes
## 360       Liaoformica    Yes
## 361      Longiformica    Yes
## 362      Longiformica    Yes
## 363   Magnogasterites    Yes
## 364   Myrmecorhynchus    Yes
## 365        Nylanderia    Yes
## 366        Nylanderia    Yes
## 367        Oecophylla    Yes
## 368        Oecophylla    Yes
## 369        Oecophylla    Yes
## 370        Oecophylla    Yes
## 371        Oecophylla    Yes
## 372        Oecophylla    Yes
## 373        Oecophylla    Yes
## 374        Oecophylla    Yes
## 375        Oecophylla    Yes
## 376        Oecophylla    Yes
## 377        Oecophylla    Yes
## 378        Oecophylla    Yes
## 379        Oecophylla    Yes
## 380       Orbicapitia    Yes
## 381       Ovalicapito    Yes
## 382     Ovaligastrula    Yes
## 383       Plagiolepis    Yes
## 384       Plagiolepis    Yes
## 385       Plagiolepis    Yes
## 386       Plagiolepis    Yes
## 387       Plagiolepis    Yes
## 388       Plagiolepis    Yes
## 389       Plagiolepis    Yes
## 390       Plagiolepis    Yes
## 391       Plagiolepis    Yes
## 392       Polyrhachis    Yes
## 393        Prenolepis    Yes
## 394 Prodimorphomyrmex    Yes
## 395      Protoformica    Yes
## 396      Protomyrmica    Yes
## 397       Protrechina    Yes
## 398  Pseudocamponotus    Yes
## 399      Pseudolasius    Yes
## 400      Sicilomyrmex    Yes
## 401       Sinoformica    Yes
## 402   Sinotenuicapito    Yes
## 403          Wilsonia    Yes
## 404          Wilsonia    Yes
## 405           Zatania    Yes
## 406         Formicium    Yes
## 407         Formicium    Yes

This introduces a couple of interesting concepts. The first is using inclusive and exclusive indexing. This is an example of the 5 being inclusive - we will get the fifth row of data. The six is exclusive - we will stop accessing data at the 6th row.

Recap: Our Three Goals

In this chapter, we have discussed data storage using flat files, which can be read by both computers and humans. We introduced R libraries and learned how we can call functions out of a library to do useful tasks for us. And finally, we have started to use a small set of functions in the Pandas library to access data programmatically. In the next chapter, we will build on these concepts to perform a wider range of data tasks.

Chapter Three: Accessing Complex Combinations of Data

Introduction

When would we not want to use lists of columns and rows to select data out of a dataframe? When we have a lot of data, which is rapidly becoming the norm in biology. In order to process data at a large scale, we need better tools to allow us to do complex data filtering, selection and manipulation. By using R, we automatically create a log of all the operations we perform as we access our data. By the end of this chapter, you will understand:

  1. Concept: How the R operates to access data in a dataframe.
  2. Concept: How accessing data programmatically leads to reproducible research by preserving a log of your work.
  3. Hands-On: Commands for using Pandas to perform common spreadsheet sorting and viewing functions.

Data Accession

We often have an idea of the data we’d like to access. Perhaps we are interested to know what data we have for a specific genus, Oecophylla.

oeco <- ant_data %>% 
  filter(genus == "Oecophylla")

These outputs have the same information, but they look rather different. Try assigning each output to a variable. Now, we will call the type function on each variable.

typeof(ant_data)
## [1] "list"
typeof(oeco)
## [1] "list"

Type is a function that is built in to R. It allows us to know what sorts of objects our variables are, which in turn tells us about their properties.

A list is an R object type. It is a one-dimensional array (i.e. not a matrix). In some ways, if a dataframe is like a spreadsheet, a series is like a single row of column in that sheet. More information on the series data type can be found by typing

?list

in your notebook.

Using these complex indexers, we can begin to make multiple selections of data. For example, this syntax will select all the examples of Formica that are at least 30 million years old.

ant_data %>% 
  filter(genus == "Formica") %>% 
  filter(min_ma > 30)
##                  specimen reference_no  subfamily tribe   genus fossil min_ma
## 1                 Formica        38999 Formicinae  None Formica    Yes   33.9
## 2          Formica_annosa        55770 Formicinae  None Formica    Yes   41.3
## 3      Formica_biamoensis        56094 Formicinae  None Formica    Yes   33.9
## 4      Formica_cockerelli         4971 Formicinae  None Formica    Yes   33.9
## 5         Formica_eoptera        42241 Formicinae  None Formica    Yes   33.9
## 6         Formica_gibbosa        44584 Formicinae  None Formica    Yes   33.9
## 7         Formica_grandis         4971 Formicinae  None Formica    Yes   33.9
## 8         Formica_gustawi        44522 Formicinae  None Formica    Yes   33.9
## 9     Formica_heteroptera        41450 Formicinae  None Formica    Yes   41.3
## 10        Formica_horrida        40999 Formicinae  None Formica    Yes   33.9
## 11      Formica_kutscheri        44522 Formicinae  None Formica    Yes   33.9
## 12         Formica_lucida        47505 Formicinae  None Formica    Yes   33.9
## 13        Formica_luteola        44584 Formicinae  None Formica    Yes   33.9
## 14    Formica_macrognatha        44584 Formicinae  None Formica    Yes   33.9
## 15          Formica_nigra        44584 Formicinae  None Formica    Yes   33.9
## 16 Formica_palaeopolonica        44522 Formicinae  None Formica    Yes   33.9
## 17  Formica_paleosibirica        56094 Formicinae  None Formica    Yes   33.9
## 18        Formica_parvula        44584 Formicinae  None Formica    Yes   33.9
## 19      Formica_phaethusa        40999 Formicinae  None Formica    Yes   33.9
## 20       Formica_quadrata        44586 Formicinae  None Formica    Yes   33.9
## 21     Formica_radchenkoi        44522 Formicinae  None Formica    Yes   33.9
## 22        Formica_robusta         4971 Formicinae  None Formica    Yes   33.9
## 23    Formica_strangulata        40999 Formicinae  None Formica    Yes   33.9
## 24   Formica_surinamensis        44587 Formicinae  None Formica    Yes   33.9
## 25        Formica_trigona        44584 Formicinae  None Formica    Yes   33.9
## 26     Formica_zherikhini        44522 Formicinae  None Formica    Yes   33.9
##    max_ma notes
## 1    37.2  Note
## 2    47.8  Note
## 3    38.0  Note
## 4    37.2  Note
## 5    37.2  Note
## 6    38.0  Note
## 7    37.2  Note
## 8    38.0  Note
## 9    47.8  Note
## 10   38.0  Note
## 11   38.0  Note
## 12   38.0  Note
## 13   38.0  Note
## 14   38.0  Note
## 15   38.0  Note
## 16   38.0  Note
## 17   38.0  Note
## 18   38.0  Note
## 19   38.0  Note
## 20   38.0  Note
## 21   38.0  Note
## 22   37.2  Note
## 23   38.0  Note
## 24   38.0  Note
## 25   38.0  Note
## 26   38.0  Note

Challenge

How could you print the minimum ages for all three Mianeuretus listed in this data file?

The above is more useful and flexible than what we discussed in Chapter Two. But it’s still somewhat naive - we need to know where, exactly the data are in the file to retrieve them. We’ll now cover a few methods to allow us to sort and access data without knowing this a priori.

Something we might want to do is know which of our ants are at least as old as the KPg event, the end of the Cretaceous. Ants are thought to have arisen during the Cretaceous. We can do this easily and assign our sample of old ants to a new dataframe:

old_ants  <- ant_data %>% 
  select(specimen, min_ma, max_ma) %>% 
  filter(min_ma > 65)

The way this works is that we select all the values in the dataframe column min_ma that are larger than 65.5. By default, this will take the whole row. Then, we assign that to a new dataframe. We can write this dataframe to a csv file for storeage like so:

write_csv(old_ants, "ants_old.csv")

###Challenge

  • Try this again - how could we filter for ants that only existed after the end of the Creatceous? Can we use the same column?
  • When you open the parentheses on a function argument and press tab, you can see all the arguments, or special options, available to that function. Try a couple, such as delimiters. Once you’ve chosen an argument, Shift+Tab will show you possible values for the argument.

We can also use this type of indexing to compare columns. Our max_ma column should always be bigger than min_ma. We can check for rows where this isn’t the case - these are errors.

ant_data %>%  
  filter(min_ma > max_ma)
## [1] specimen     reference_no subfamily    tribe        genus       
## [6] fossil       min_ma       max_ma       notes       
## <0 rows> (or 0-length row.names)

In our data, we don’t have any such errors, but if we did, we could drop them like so:

ant_data %>%  
  filter(min_ma > max_ma)
## [1] specimen     reference_no subfamily    tribe        genus       
## [6] fossil       min_ma       max_ma       notes       
## <0 rows> (or 0-length row.names)

Does anyone see a problem with what I did there?

I made a mistake and selected only the data that have a minimum age larger than the maximum age, and used it to overwrite the dataframe object! If I overwrote my data for real, this would be a big problem. But I didn’t - R is not doing these operations in the actual spreadsheet. It’s doing them on a dataframe held in memorey - our real data are perfectly safe in the Ants.csv file.

Programming as a Living Record of Your Work

In the previous command, I switched the inequality to accidentally drop all the values I actually wanted to keep! So far, we’ve covered some important conceptual data lessons - that data are read-only, that data should be stored in flat files. We will now learn an important lesson as it pertains to code - that code can be saved for later, as an exact record of what we did in a session of programming.

This might not sound that important, but I think most of us have probably been working in a spreadsheet and completely forgotten how we got the useful annotations on a plot, of calculated a summary statistic. In this section, we will cover some best practices for keeping track of what we’ve done. We will expand on these best practices later, and in more complexity.

For now, let’s have a look at the tool we’ve been using, the Jupyter Notebook. We’ve been typing into a window in our browser. That window is running R on our computer, and rendering the output in a nice format using Java. We have code cells, which we have been pasting code into cells and running it. In these notebooks, you can create a new cell, and chenge it’s type by selecting something other than code from the dropdown. For example, we could pick ‘Markdown’ to write notes.

What we are doing when we do this is weaving together code and data to make readable documents that follow our whole workflow. When we are done for a session, we can select ‘Save and Checkpoint’ from the File menu. This will save our notebook for later. A notebook can be emailed to a collaborator, or, as we will cover later, managed under version control. We can also download the file as a plain R script in the File menu. We will discuss why we might want to do this in Chapter Four.

Together, what this means is that our code to reproduce the analysis we did is always available. If we need to go back and do it again, for example, if we get more data, that’s easy to do. We just run the code again. If a colleague wants to try the analysis again, we can simply send them the code. This is much easier than trying to explain to someone where to click to get a certain option, particularly when spreadsheet softwares are not consistent across platforms.

So what to do with the mistake I made? We can simply go back to our notebook and re-run the steps before I made the mistake, then fix the inequality in the equation.

Recap

In this chapter, we have discussed how to programmatically access and read data using the Pandas library. We have used a variety of commands to perform simple data accession, as well as more complex choices involving multiple columns and rows. We even made a mistake in the data that we accessed - and, in the process, learned that we can use the programmatic record to reproduce the steps before we made our mistake to get our data back.

Chapter Four: Common Spreadsheet Operations and How to Automate Them

Introduction

We’ve now learned a bit about how to read in data and access data in using R. This chapter will guide you through some common operations that researchers often want to do to with data using R. We will then take a step back and discuss how to use common programming conventions, like loops and lists to make automating boring tasks easier.

After finishing this chapter, you will usderstand:

  1. Concept: How data can be subsetted and sorted in the computer’s memory.
  2. Concept: How lists and loops can be used to perform data analysis tasks multiple times.
  3. Hands On: Exposure to the R language’s syntax for managing collections of objects.

Subsetting and Sorting Data

One common task many researchers do with their data is break it into smaller chunks, perhaps by treatment, to look at effects in that group. We’re not working with experiemental data here, but we can certainly split our data up. Ants are known in the literature as the Formicids. This is a family. There are many subfamilies of ants. We might be interested in seeing if we have equal samples of each subfamily.

We can group our data by subfamily like so:

subfamilies <- ant_data %>% 
  group_by('subfamily')

Doing this creates a groupby object, or a list of chunks of our data, identified by the subfamily to which they belong.

subfamilies <- ant_data %>% 
  count(subfamily)

subfamilies
##            subfamily   n
## 1  Agroecomyrmecinae   3
## 2      Amblyoponinae   9
## 3        Aneuretinae  12
## 4         Armaniinae  15
## 5     Brownimeciinae   1
## 6     Dolichoderinae 129
## 7          Dorylinae  11
## 8       Ectatomminae  13
## 9        Formiciinae   3
## 10        Formicinae 211

They are not. The samples of Formicinae and Dolichoderinae, for example, are much bigger than the rest. These are also the most specious groups of ants. Could the disparity in the sample be due to group speciousity? I’ve made a secodn spreadsheet with a rough guess at the species richness of each of the ant groups in this data set. Let’s load it:

sub_r <- read_csv('data/subfamilyRichness.csv')
## Rows: 10 Columns: 2
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): subfamily
## dbl (1): size
## 
##  Use `spec()` to retrieve the full column specification for this data.
##  Specify the column types or set `show_col_types = FALSE` to quiet this message.

You’ll notice we’ve added a new option to reading in a csv file - index_col. This allows us to specifiy which column we would like to be the index. Now we have two dataframes, one with our observed data and one with the number of species that exist in nature. To do mathematical operations using both pieces of data, we will combine them. We will do this using a merge, which combines two datasets on a given column.

In our case, we will merge sizes to sub_r. We will use the nice indices we just created as our join columns. This is specified by ‘left_index’, the index of the object before we call the merge function being set to true, and right_index, the index of the object after we call the merge being set to true. If we had called join with sub_r being first, it would be the left and sizes would be the right.

merged <- merge(subfamilies, sub_r)

The output of this is a new dataframe, with two columns: one from sizes, one from sub_r. We can now divide out our two columns to see if we have sampled some clades more because they are more speciose. If this were true, we would expect to see roughly the same proportion of sampling, but not the same number of samples. We will assign the sampling proportion to a new column called ‘proportion’.

merged %>% 
  mutate(proportion = n/size)
##           subfamily   n size proportion
## 1 Agroecomyrmecinae   3    2 1.50000000
## 2     Amblyoponinae   9  147 0.06122449
## 3       Aneuretinae  12   12 1.00000000
## 4    Brownimeciinae   1    1 1.00000000
## 5    Dolichoderinae 129  970 0.13298969
## 6         Dorylinae  11  804 0.01368159
## 7      Ectatomminae  13  375 0.03466667
## 8       Formiciinae   3    8 0.37500000
## 9        Formicinae 211  400 0.52750000

Do these sizes look right? Your answer should be no. There might be some errors in this database.

###Challenge - Try some other mathematical operations. Subtract the columns! - How could you delete a column if you decided you didn’t want your mathematical output? (Hint: look at the drop function. Be aware some behaviors are a little odd.) - Think a little about data as read-only: where will you want to save these outputs?

## Recap

In this chapter, we have looked at subsetting our data. We used the groupby command to make data subsets along a biologically interesting axis. We then used loops and lists to process data and make the process of managing datasets easier. Finally, we joined together multiple data objects and used them to perform mathematical operations. In the next chapter, we will build on the concepts seen here to further automate data management.

Chapter Five: Functions, Scripts and Revision Management

So far, we’ve covered the nuts and bolts of programming. We’ve learned a little bit about how to control R, and it’s time to think about controlling its environment. As you program more and more, you’ll need to have maintainable pieces of code, and some framework to maintain them.

In this chapter, we’ll cover two core concepts. We will discuss scripts, which may contain one or more functions and the comments needed to interpret and use them. And lastly, we will discuss revision management, the practice of using a defined system to track how and when changes are made to your code.

By the end of this chapter, you will be able to:

  1. Concept: How grouping functions into scripts can make it easier to understand and maintain code.
  2. Concept & Hands-On: Commands to use a revision management system to keep track of changes to your codebase.

Revision Management

Now we have an actual, working script. This is fantastic - we can send this to a coworker and have them reproduce our analyses. We can use it again later to recall exactly what we did!

Until our coworker emails it back and says it doesn’t work, and we open it to find a bunch of changes. Until we accidentally delete a piece of code, close our laptop, and go on vacation. Until our laptop dies.

Enter revision management, for tracking changes to our code (or any other text file - this tutorial was written with revision management). As you’re aware, we will be using git for revision management this semester. What we’re going to do now is a really swift primer on some of the basic functionality of git and its web interface, GitHub.

First, we’ll do some brief setup:

git config --global user.name "Your Name"
$ git config --global user.email "you@youremail"

When you do the setup, use the email address you set up GitHub with. That way, GitHub will know the commits are from you and won’t reject them (I have added you as collaborators on my project).

I really want you to protect the script we just wrote together. First, add your initials to the name of your script so I know whose is whose. Mine would be first_script_amw.py. Now, in the Spring2017 directory, type:

git add first_script_yourinitials.py

This command lets git know that we’re interested in tracking any changes made to this script. Next, we want to commit the script. Committing takes a snapshot of the script, preserving it as it existed in that moment in time. People differ on how often to commit. Some people commit frequently, some people only commit when they are done for the day.

git commit

This will now ask you for a short message describing what is being committed. You could say something like ‘adding ant data parsing script’ or ‘initial draft of script’. Try for something informative.

Now, we push to the internet:

git push

This may ask you for your username and password, if you cloned the repository over HTTPS. Once this has completed, you should be able to go to the website for the repository and look at your script!

You might be wondering now where git is storing your log of revisions. If you go up one level like so:


cd ..

and list hidden files:

ls -a

you will see a folder called .git. This stores all your checkpoints and snapshots.

We’ll cover more complex Git functionality in the future as we do more work.

Challenge

Try to find a tpyo to fix in the lessons. Fix it, add the file in git, commit it and push it.