I heard from several people after I wrote my last post about visualization who were excited about learning the very cool things that R can do. Yay! That post only scratched the surface of the many, nearly endless, things that R can do in terms of visualization, so if that seemed interesting to you, I hope you will go forth and learn more! In case I haven’t already convinced you of R’s awesomeness (no, I’m not a paid R spokesperson or anything), I have a little more to say about why R is so great for data processing and analysis.
When it comes to data analysis, most of the researchers I know are either using some fancypants statistical software that costs lots of money, or they’re using Excel. As a librarian, I have the same sort of feelings for Excel as I do for Google: wonderful tool, great when used properly, but frequently used improperly in the context of research. Excel is okay for some very specific purposes, but at least in my experience, researchers are often using it for tasks to which it is not particularly suited. As far as the fancypants statistical software, a lot of labs can’t afford it. Even more problematic, every single one I’m aware of uses proprietary file formats, meaning that no one else can see your data unless they too invest in that expensive software. As data sharing is becoming the expectation, having all your data locked in a proprietary format isn’t going to work.
Enter R! Here are some of the reasons why I love it:
- R is free and open source. It’s supported by a huge community of users who are generally open to sharing their code. This is great because those of us who are not programmers can take advantage of the work that others have already done to solve complex tasks. For example, I had some data from a survey I had conducted, mostly in the form of responses to Likert-type scale questions. I’m decidedly not a statistician and I was really not sure exactly how I should analyze these questions. Plus, I wanted to create a visualization and I wasn’t entirely sure how I wanted it to look. I suspected someone had probably already tackled these problems in R, so I Googled “R likert.” Yes! Sure enough, someone had already written a package for analyzing Likert data, aptly called likert. I downloaded and installed the package in under a minute, and it made my data analysis so easy. Big bonus: R can generally open files from all of those statistical software programs. I saved the day for some researchers when the data they needed was in a proprietary format, but they didn’t want to pay several thousands of dollars to buy that program, and I opened the data in like 5 seconds in R.
- R enhances research reproducibility. Sure, there are a lot of things you can do in Excel that you can do in R. I could open an Excel spreadsheet and do, for example, a find and replace to change some values of something. I could probably even do some fairly complex math and even statistics in Excel if I really knew what I was doing. However, nothing I do here is going to be documented. I have no record explaining how I changed my data, why I did things the way I did, and so on. Case in point number 1: I frequently work on processing data that had been shared or downloaded from a repository to get it into the format that researchers need. They tell me what kind of analysis they want to do, and the specifications they need the data to meet, and I can clean everything up for them much more easily than they could. Before I learned R, this took a long time, for one thing, but I also had to document all the changes I made by hand. I would keep Word documents that painstakingly described every step of what I had done so I had a record of it if the researchers needed it. It was a huge pain and ridiculously inefficient. With R, none of that is necessary. I write an R script that does whatever I need to do with the data. Not only does R do it faster and more efficiently than Excel might, if I need a record of my actions, I have it all right there in the form of the script, which I can save, share, come back to when I completely forgot what I did 6 months later, and so on. Another really nice point in this same vein, is that R never does anything with your original file, or your raw data. If you change something up in Excel, save it, and then later realize you messed up, you’re out of luck if you’re working on your copy of the raw data. That doesn’t happen with R, because R pulls the data, whatever that may be, into your computer’s working memory and sort of keeps its own copy there. That means I can go to town doing all sorts of crazy stuff with the data, experiment and mess around with it to my heart’s content, and my raw data file is never actually touched.
- Compared to some other solutions, R is a workhorse. I suspect some data scientists would disagree with me characterizing R as a workhorse, which is why I qualified that statement. R is not a great solution for truly big data. However, it can handle much bigger data than Excel, which will groan if you try to load a file with several hundred thousand records and break if you try to load more than a million. By comparison, this afternoon I loaded a JSON file with 1.5 million lines into R and it took about a minute. So, while it may not be there yet in terms of big data, I think R is a nice solution for small to medium data. Besides that, I think learning R is very pragmatic, because once you’ve got the basics down, you can do so many things with it. Though it was originally created as a statistical language, you can do almost anything you can think of to/with data using R, and once you’ve got the hang of the basic syntax, you’re really set to branch out into a lot of really interesting areas. I talked in the last post about visualization, which I think R really excels at. I’m particularly excited about learning to use R for machine learning and natural language processing, which are two areas that I think are going to be particularly important in terms of data analysis and knowledge discovery in the next few years. There’s a great deal of data freely available, and learning skills like some basic R programming will vastly increase your ability to get it, interact with it, and learn something interesting from it.
I should add that there are many other scripting languages that can accomplish many of the same things as R. I highlight R because, in my experience, it is the most approachable for non-programmers and thus the most likely to appeal to librarians, who are my primary audience here. I’m in the process of learning Python, and I’m at the point of wanting to bang my head against a wall with it. R is not necessarily easy when you first get started, but I felt comfortable using it with much less effort than I expected it would take. Your mileage may vary, but for the effort to payoff ratio I got, I absolutely think that my time spent learning R was well worth it.