[R] Regarding the 'R' Load Command

Steve Lianoglou mailinglist.honeypot at gmail.com
Tue May 18 22:13:24 CEST 2010


On Tue, May 18, 2010 at 2:49 PM, Godavarthi, Murali
<MGodavarthi at dpscs.state.md.us> wrote:
> Hi,
> I'm new to 'R' and need some help on the "Load" command. Any responses
> will be highly appreciated. Thanks in advance!
> As per manuals, the "Load" command expects a binary file input that is
> saved using a "save" command.

Or a path to the file ...

> However it is required that we need to
> call the 'R' program from
> Java web application using RJava, and pass a string to the 'R" program
> instead of a binary file. Is it possible?

Yes, pay closer attention to the description for the "file" argument
in the load function (see ?load):

"""a (readable binary) connection **or a character string** giving the
name of the file to load"""

(emphasis mine)

> I was exploring the options of using TextConnections, file connections
> and other types of connections in order to read a stream of input
> (either from a file, stdin etc). I am able to read the string, but the
> Save and Load commands are not accepting the string input. Here is the
> sequence of commands I tried running, and the error received. There is
> no clue on this error, especially when trying to use the eval function
> in randomForest package, even on the internet. Can anyone help please!
>> library(randomForest)
> randomForest 4.5-34
> Type rfNews() to see new features/changes/bug fixes.
>> load("C://Program Files//R//R-2.10.1//bin//rfoutput")
>> zz <- file("ex.data", "w")
>> cat("\"imurder\" \"itheft\" \"irobbery\" \"iassault\" \"idrug\"
> \"iburglary\" \"igun\" \"psych\" \"Freq\" \"priors\" \"firstage\"
> \"intage\" \"sex\" \"race\" \"marstat\" \"empac\"
> \"educ\" \"zipcode\" \"suspendmn\" \"drugs\" \"alco\" \"probation\"
> \"parole\"",file = zz, sep = "\n", fill = TRUE)
>> cat("\"10\" 0 0 0 1 0 0 0 0 0 58 19 19 \"1\" \"BLACK\" \"SINGLE\"
> \"UNEMPLD\" 0 21215 0 0 0 1 0",file = zz, sep = "\n", fill = TRUE)

What are you trying to do here?
It looks like you want to save a table of sorts. First create your
data into a data.frame, then save that data.frame to a file using
write.table (or write.csv, etc).

>> save(zz, file = "testmurali", version = 2)

You're saving a file "object" here, not the contents of the file.
Once you successfully serialize your data into a text file, just load
it from "like normal" using read.table (or similar).

Anyway, I'm not sure what we're talking about here, but in short:

1. You need to make sure that you are correctly saving what you think
you're saving.
2. You can pass a character string to the `load` function, so you can
send it through (over from) java as  you wich.
3. I don't think you really want to deal with load/save here, because
it looks like you are dealing with some tab delimited file -- in which
case use read.table (or similar) and load it that way. You can, of
course, still use save/load, but make sure you save/load the right
thing (not a file object like you're doing here).

Steve Lianoglou
Graduate Student: Computational Systems Biology
 | Memorial Sloan-Kettering Cancer Center
 | Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact

More information about the R-help mailing list