**Tags**

In this post, I give an outline for those interested in migrating from using SPSS and Excel for data processing/analysis across to using R for data processing/analysis. This will be the first post in a small series: it’s aimed at psychology researchers – as that’s what I am, but I’m sure much of this will apply to people from other fields/disciplines. For the purposes of this, I’ll assume that you do your data manipulation (e.g., pivot tables and organising datasets) using Excel, and your stats using SPSS. I also assume you use either SPSS or Excel, or perhaps an alternative package such as SigmaPlot, to make your graphs for publications.

Before you Start

Before we get into any details, I need to point out something important. Whatever you do, DON’T sit down with R in front of you, clutching a dataset in your hand, and expect to be able to do everything you could in SPSS/Excel straight away. I’ve seen many people try this, expecting R to be identical to what they are used to from SPSS/Excel, and they, not surprisingly, give up very quickly. Just remember this: you’ve probably spent years working with SPSS and Excel, beginning as an undergrad, so this process will take time – but that doesn’t mean you should give up, like I’ve seen many people do. The investment of time is more than worth it!

# First Steps

First off, download R to get started. Here is a direct download link if you don’t want to navigate the R websites.

After you download R and have it installed, I recommend picking up RStudio and installing that. Load up RStudio. It will look something like this (click image to enlarge):

# Orienting Yourself

Now, there are several points worth considering when you are faced with your new setup. First, you can now officially forget about the annoyances of having to switch between programs to do different things: gone are your days of using Excel to manipulate data, then importing it to SPSS, then graphing it, and then realising there’s something horribly wrong with it. I’ve had that happen plenty of times – spotting an error at the very end of the long chain of processes. The worst thing about when this happens is that you then need to go back to step #1 and start from scratch. It’s no fun at all.

R changes all of that. You have SPSS, Excel and Sigmaplot all rolled into one – with oodles of other features packed in besides (plus you have the option of adding more features and packages yourself). More importantly, as you will be writing scripts to do all your data processing and graphs, if you do detect an error, it’s a case of tweaking your script and then re-running it. Gone will be the days when you had to laboriously click through pivot tables, pasting into loads of new worksheets, losing your place and getting confused…and so on. You’ll find yourself wondering why you ever did things like that in the first place.

I’ll now go through what you have in front of you – taking each part step by step.

# The Scripting/Data Tabs and Console Window

In the scripting tab(s) area (yellow), you have access to scripts that you write. Scripts consist of commands that you run and send to R to do things.

The Console (highlighted red) is a bit like the output window you get from SPSS. However, unlike the SPSS output window, it’s interactive, so you can type commands to it directly rather than just seeing buckets of text spewed out. This is useful if you want to test something out or just run something once. For example, type:

>40+2

in the console and press Return. It nicely gives you the answer.

[1] 42

To see what the script tab can be used for, and for what scripts can be used for in general, type the same command in again into the script. All you need is to type 40+2. Then, click anywhere in the row where you have typed your command, and click the **Run** button (see image below). This sends the command from the line in your script directly to the console. You’ll see other buttons nearby that have other, related functions – hover over them for tooltips.

If you find yourself clicking run, and noticing the console output just adding more ‘>’ signs to the output, it means you haven’t clicked the line containing your command. Try clicking the line containing 40+2 with your mouse and running the command again.

Next up, try adding some additional lines of basic maths to your script, highlight the lines with your mouse, and then hit run again. If you have multiple lines of commands in your script to run, then you need to highlight them with your mouse. When you run them, you’ll see that these lines have all been sent to the console, with the answers coming out at the appropriate times.

# The Workspace

In Excel, you were used to having multiple worksheets with different datasets in them. These quickly become difficult to use when you have large numbers of worksheets to sift through. In SPSS, you need to have one main SPSS window open for each dataset. This could rapidly lead to having many SPSS windows open, causing annoyance and confusion about which one to work from.

R and RStudio takes a different approach entirely. In R, you have a **workspace** (users of Matlab will be familiar with this), and RStudio allows you to get an overview of your workspace in a glance. Gone are the days of many worksheets from Excel or many data windows in SPSS. The workspace in RStudio is highlighted below.

Let’s begin by demonstrating the purpose of the workspace. Type the following into a script and run it, or into the console itself:

answer <- 42

You will then see **answer **appear in the workspace with a **value **of 42.

But, this works not only with individual values – you can access, store and manipulate entire sets of data like this as well. Let’s create ourselves a little data set to begin with. Typically we work with **dataframes** in R, so we’ll call them that from now on. Just think of them a bit like a data window in SPSS, or a worksheet in Excel.

Next, run the following command:

testdf <- data.frame(“values”=rnorm(mean=5,sd=1,100))

What this does is create a dataframe called **testdf **– don’t worry about the details too much just yet, as I’ll get to handling data in the next post in this series. What this dataframe contains is a list of 100 values randomly selected from a normal distribution with a mean of five and standard deviation of one. When you run the command, you’ll notice that testdf gets added to your workspace:

One of the useful features here is that it gives us information about the number of rows (“100 obs.”) and the number of columns (“1 variables”) in our dataframe. This is often helpful for diagnostics and making sure we know what we’ve done with our data when it’s been copied/merged/transformed/etc.

Finally, when you want to take a look at your dataframe, all you need to do is click the name of it in the workspace – a single-click is all you need. That will then open a new tab showing your data, like so:

This now allows you to look at all of your data – though unlike SPSS and Excel, it does mean that you have open in tabs the data you need to look at, rather than everything. Personally I feel this makes everything seem cleaner and less cluttered, but that may just be me! I know that everyone has their own personal way of dealing with things like this.

# Plots

Let’s end with making a very simple plot. For now, we’ll make a histogram of our dataframe. To do that, enter the following command:

hist(testdf$values)

You can see the plot shown in the **Plots **area in the bottom-right-hand corner of the display – shown in the image below. My randomly-selected values show a reasonably normal distribution!

# Next Steps

That’s it for now. Hopefully this will serve as a basic orientation for using R with RStudio. For the next posts in the series, I’ll finish a tour of R, and then there will be a discussion on how to organise your data for R – in some cases, it’s a slightly different approach to SPSS, so is worth discussing in detail.

UPDATE: As Ian Fellows kindly points out in the comments, there are other GUIs available for R besides RStudio – including the excellent Deducer. I also discussed some of the other GUIs available in a previous post from when I was just starting to learn R.

Ian Fellows

said:Users migrating from spss might also be interested in the Deducer R GUI:

http://www.deducer.org/pmwiki/pmwiki.php?n=Main.DeducerManual

Hayward Godwin

said:Good point, Ian – thanks for the link!

Roger

said:I’m using Deducer (thanks Ian), but also like the layout of RStudio. I wonder if there’s some way of integrating them.

Cheers,

Roger

Hayward Godwin

said:Hi Roger – I’ve been told it is possible, though I don’t have R on the machine I’m on at the moment, or I’d test it out myself! I assume it’s just a case of running deducer from RStudio instead, but don’t quote me on that!

Hayward Godwin

said:So I managed to get to my machine with R on, and it’s very easy to install Deducer – http://www.deducer.org/pmwiki/pmwiki.php?n=Main.WindowsInstallation – I followed the guide (including running as admin the file that ended up being downloaded to my desktop), and it all works great!

tushar rao

said:I loved your first post and will keep for glued for more in the series.

Hayward Godwin

said:Thanks! 🙂 Will post some more soon hopefully.

Roger

said:Great post Hayard – thanks for introducing me to RStudio.

I just taught a statistics course using SPSS and R with Deducer/JGR. I’m thinking that I’ll have my students use RStudio for organization of the data and JGR/Deducer for the analyses.

Cheers,

Roger

Hayward Godwin

said:Thanks, Roger – your course sounds really interesting. How did the students find it? Adding RStudio into the mix would, I think, make things easier than using the default R GUI.

I’ve been teaching stats to psych undergrads for a while, and there have lately been suggestions about adding R to the menu as well. It would certainly add value to the course, though the main problem is that many of them really struggle with SPSS as it is, but using something like your RStudio/Deducer combo would make the transition process between SPSS and R much easier.

Pingback: Migrating from SPSS/Excel to R, Part 2: Working with Packages « Psychwire

Ones Marsali

said:Hi, nice blog.. will be following the next ones.. greetings from Indonesia

Pingback: Migrating from SPSS/Excel to R, Part 3: Preparing your Data « Psychwire

TC

said:Sorry but copy/pasting:

testdf testdf <- data.frame(“values”=rnorm(mean=5,sd=1,100))

Error: unexpected input in "testdf <- data.frame(“"

Michael Olivera

said:Deducer looks nice, but the problem is how to install it on linux.

I tried many times and I could not install it.

Deducer needs a simpler and easier way to install it like RStudio. Just as rpm binary package or deb package.

Regards,

Michael