# Example 7.10: Get data from R into SAS

[This article was first published on

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

In our previous entry, we described how to generate a dataset from SAS that could be used for analyses in R. Alternatively, someone primarily using R might want to test the new ”statistical graphics” procedures available starting with SAS 9.2. Here we show how one might create a long data set in R, export it, read it in SAS, and generate a plot similar to that shown in example 7.9.**SAS and R**, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

**R**

In R, we use the

`reshape() function`(section 1.5.3) to make the ”long” data set. We make a data frame (section B.4.5) from the data we’ll need in SAS. We check the data, using the

`order()`function (section 1.5.6) to organize the new data frame by subject instead of visit number. Finally, we write out the data set in dBase format (section 1.2.2).

> ds <- read.csv ("http://www.math.smith.edu/sasr/datasets/helpmiss.csv") > attach(ds) > long <- reshape(ds, idvar="id", varying=list(c("cesd1","cesd2","cesd3","cesd4")), v.names="cesdtv", timevar="visit", direction="long") > attach(long) > tosas <- data.frame(id, visit, cesdtv) > head(tosas[order(id, visit),]) id visit cesdtv 1 1 1 7 471 1 2 NA 941 1 3 8 1411 1 4 5 2 2 1 11 472 2 2 NA > library(foreign) > write.dbf(tosas,"c:\book\tosas.dbf")

**SAS**

In SAS, we read in the data from the dBase format ﬁle (section 1.1.5),

`proc sort`(section 1.5.6) it in place, and check the data using

`proc print`(section 1.2.4).

proc import datafile="C:booktosas.dbf" out=fromr dbms=dbf; run; proc sort data=fromr; by id visit; run; proc print data=fromr (obs=5); run; Obs id visit cesdtv 1 1 1 7 2 1 2 . 3 1 3 8 4 1 4 5 5 2 1 11

Finally, we generate the desired plot with

`proc sgpanel`(section 5.1.11), using the

`where`statement (section A.6.3) to select the ﬁrst 20 subjects.

proc sgpanel data=fromr; where id le 20; panelby id / rows=4 columns=5; scatter x=visit y=cesdtv; run;

To

**leave a comment**for the author, please follow the link and comment on their blog:**SAS and R**.R-bloggers.com offers

**daily e-mail updates**about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.

Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.