O'Reilly logo

R Packages by Hadley Wickham

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 2. Package Structure

This chapter will start you on the road to package development by showing you how to create your first package. You’ll also learn about the various states a package can be in, including what happens when you install a package. Finally, you’ll learn about the difference between a package and a library and why you should care.

Naming Your Package

“There are only two hard things in computer science: cache invalidation and naming things.”

—Phil Karlton

Before you can create your first package, you need to come up with a name for it. I think this is the hardest part of creating a package! (Not least because devtools can’t automate it for you.)

Requirements for a Name

There are three formal requirements: the name can only consist of letters, numbers, and periods (i.e., .); it must start with a letter; and it cannot end with a period. Unfortunately, this means you can’t use either hyphens or underscores (i.e., - or _) in your package name. I recommend against using periods in package names because it has confusing connotations (i.e., file extension or S3 method).

Strategies for Creating a Name

If you’re planning on releasing your package, I think it’s worth spending a few minutes to come up with a good name. Here are some recommendations for how to go about it:

  • Choose a unique name that can easily be Googled. This makes it easy for potential users to find your package (and associated resources) and for you to see who’s using it. You can also check ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required