# Summary and Schedule

*an introduction to R for non-programmers using gapminder
data*

The goal of this lesson is to teach novice programmers to write modular code and best practices for using R for data analysis. R is commonly used in many scientific disciplines for statistical analysis and its array of third-party packages. We find that many scientists who come to Software Carpentry workshops use R and want to learn more. The emphasis of these materials is to give attendees a strong foundation in the fundamentals of R, and to teach best practices for scientific computing: breaking down analyses into modular units, task automation, and encapsulation.

Note that this workshop will focus on teaching the fundamentals of the programming language R, and will not teach statistical analysis.

The lesson contains more material than can be taught in a day. The instructor notes page has some suggested lesson plans suitable for a one or half day workshop.

A variety of third party packages are used throughout this workshop. These are not necessarily the best, nor are they comprehensive, but they are packages we find useful, and have been chosen primarily for their usability.

Setup Instructions | Download files required for the lesson | |

Duration: 00h 00m | 1. Introduction to R and RStudio |
How to find your way around RStudio? How to interact with R? How to manage your environment? How to install packages? |

Duration: 00h 55m | 2. Project Management With RStudio | How can I manage my projects in R? |

Duration: 01h 25m | 3. Seeking Help | How can I get help in R? |

Duration: 01h 45m | 4. Data Structures |
How can I read data in R? What are the basic data types in R? How do I represent categorical information in R? |

Duration: 02h 40m | 5. Exploring Data Frames | How can I manipulate a data frame? |

Duration: 03h 10m | 6. Subsetting Data | How can I work with subsets of data in R? |

Duration: 04h 00m | 7. Control Flow |
How can I make data-dependent choices in R? How can I repeat operations in R? |

Duration: 05h 05m | 8. Creating Publication-Quality Graphics with ggplot2 | How can I create publication-quality graphics in R? |

Duration: 06h 25m | 9. Vectorization | How can I operate on all the elements of a vector at once? |

Duration: 06h 50m | 10. Functions Explained | How can I write a new function in R? |

Duration: 07h 50m | 11. Writing Data | How can I save plots and data created in R? |

Duration: 08h 10m | 12. Splitting and Combining Data Frames with plyr | How can I do different calculations on different sets of data? |

Duration: 09h 10m | 13. Data Frame Manipulation with dplyr | How can I manipulate data frames without repeating myself? |

Duration: 10h 05m | 14. Data Frame Manipulation with tidyr | How can I change the layout of a data frame? |

Duration: 10h 50m | 15. Producing Reports With knitr | How can I integrate software and reports? |

Duration: 12h 05m | 16. Writing Good Software | How can I write software that other people can use? |

Duration: 12h 20m | Finish |

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.

This lesson assumes you have R and RStudio installed on your computer.

- Download and install the latest version of R.
- Download and install RStudio. RStudio is an application (an integrated development environment or IDE) that facilitates the use of R and offers a number of nice additional features. You will need the free Desktop version for your computer.