Save R objects, and other stuff
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.
Yesterday, Christopher asked me how to store an R object, in order to save some time, when working on the project.
First, download the csv file for searches related to some keyword, via http://www.google.com/trends/, for instance “sunglasses“. Recall that csv files store tabular data (numbers and text) in plain-text form, with comma-separated values (where csv term comes from). Even if it is not a single and well-defined format, it is a text file, not an excel file!
Recherche sur le Web : intérêt pour sunglasses Dans tous les pays; De 2004 à ce jour Intérêt dans le temps Semaine,sunglasses 2004-01-04 - 2004-01-10,48 2004-01-11 - 2004-01-17,47 2004-01-18 - 2004-01-24,51 2004-01-25 - 2004-01-31,50 2004-02-01 - 2004-02-07,52
(etc) The file can be downloaded from the blog,
> report=read.table( + "http://freakonometrics.blog.free.fr/public/data/glasses.csv", + skip=4,header=TRUE,sep=",",nrows=464)
Then, we have run a function on this data frame, to transform it. It can be found from a source file
> source(“http://freakonometrics.blog.free.fr/public/code/H2M.R”)
In this source file, there is function that transforms a weekly series into a monthly one. The output is either a time series, or a numeric vector,
> sunglasses=H2M(report,lang="FR",type="ts")
Here, we asked for a time series,
> sunglasses Jan Feb Mar Apr 2004 49.00000 54.27586 66.38710 80.10000 2005 48.45161 58.25000 69.93548 80.06667 2006 49.70968 57.21429 67.41935 82.10000 2007 47.32258 55.92857 70.87097 84.36667 2008 47.19355 54.20690 64.03226 79.36667 2009 45.16129 50.75000 63.58065 76.90000 2010 32.67742 44.35714 58.19355 70.00000 2011 44.38710 49.75000 59.16129 71.60000 2012 43.64516 48.75862 64.06452 70.13333 May Jun Jul Aug 2004 83.77419 89.10000 84.67742 73.51613 2005 83.06452 91.36667 89.16129 76.32258 2006 86.00000 92.90000 93.00000 72.29032 2007 86.83871 88.63333 84.61290 72.93548 2008 80.70968 80.30000 78.29032 64.58065 2009 77.93548 70.40000 62.22581 51.58065 2010 71.06452 73.66667 76.90323 61.77419 2011 74.00000 79.66667 79.12903 66.29032 2012 79.74194 82.90000 79.96774 69.80645 Sep Oct Nov Dec 2004 56.20000 46.25806 44.63333 53.96774 2005 56.53333 47.54839 47.60000 54.38710 2006 51.23333 46.70968 45.23333 54.22581 2007 56.33333 46.38710 44.40000 51.12903 2008 51.50000 44.61290 40.93333 47.74194 2009 37.90000 30.38710 28.43333 31.67742 2010 50.16667 46.54839 42.36667 45.90323 2011 52.23333 45.32258 42.60000 47.35484 2012 54.03333 46.09677 43.45833
that we can plot using
> plot(sunglasses)
Now we would like to store this time series. This is done easily using
> save(sunglasses,file="sunglasses.RData")
Next time we open R, we just have to use
> load("/Users/UQAM/sunglasses.RData")
to load the time series in R memory. So saving objects is not difficult.
Last be not least, for the part on seasonal models, we will be using some functions from an old package. Unfortunately, on the CRAN website, we see that
but nicely, files can still be found on some archive page. On Linux, one can easily install the package using (in R)
> install.packages( + "/Users/UQAM/uroot_1.4-1.tar.gz", + type="source")
With a Mac, it is slightly more complicated (see e.g. Jon’s blog): one has to open a Terminal and to type
R CMD INSTALL /Users/UQAM/uroot_1.4-1.tar.gz
On Windows, it is possible to install a package from a zipped file: one has to download the file from archive page, and then to spot it from R.
The package is now installed, we just have to load it to play with it, and use functions it contains to tests for cycles and seasonal behavior,
> library(uroot) > CH.test function (wts, frec = NULL, f0 = 1, DetTr = FALSE, ltrunc = NULL) { s <- frequency(wts) t0 <- start(wts) N <- length(wts) if (class(frec) == "NULL") frec <- rep(1, s/2) if (class(ltrunc) == "NULL") ltrunc <- round(s * (N/100)^0.25) R1 <- SeasDummy(wts, "trg") VFEalg <- SeasDummy(wts, "alg")
(etc)
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.