[R] scan or source a text file into a list

james.holtman@convergys.com james.holtman at convergys.com
Thu Nov 11 17:30:13 CET 2004

use an 'environment' to read in the values; e.g.,

> with(e1 <- new.env(),source('/tempxx.txt', local=T)) # read in the file
to a new environment
> myList <- list()  # define empty list
> for (i in ls(e1)){  # process each element
+ myList[i] <- get(i, e1)
+ }
> ls(e1)  # show objects in the list
[1] "fnr"    "nYears" "qe"     "year0"
> myList  # output my list
[1] 0.3

[1] 50

[1] 0.04

[1] 1970

James Holtman        "What is the problem you are trying to solve?"
Executive Technical Consultant  --  Office of Technology, Convergys
james.holtman at convergys.com
+1 (513) 723-2929

                      "Andy Bunn"                                                                                                          
                      <abunn at whrc.org>             To:       "R-Help" <r-help at stat.math.ethz.ch>                                           
                      Sent by:                     cc:                                                                                     
                      r-help-bounces at stat.m        Subject:  [R] scan or source a text file into a list                                    
                      11/11/2004 10:57                                                                                                     

I've ported somebody else's rather cumbersome Matlab model to R for
colleagues that want a free build of the model with the same type of I/O.

The Matlab model reads a text file with the initial parameters specified

C:\Data\Carluc\Rport>more Params.R
# Number of years to simulate
nYears = 50;
# Initial year for graphing purposes
year0 = 1970;
# NPP/GPP ratio (cpp0 unitless)
fnr = 0.30;
# Quantum efficency
qe  = 0.040;

That is, there are four input variables (for this run - there can be many
more) written in a way that R can understand them. In R, I can have the
model source the parameter text file easily enough and have the objects in
the workspace. The model function in R takes a list at runtime. How can I
have R read that file and put the contents into the list I need?

> rm(list = ls())
> source("Params.R")
> ls()
[1] "fnr"    "nYears" "qe"     "year0"
> fnr
[1] 0.3
> nYears
[1] 50
> foo.list <- list(fnr = fnr, nYears = nYears)
> foo.list
[1] 0.3

[1] 50

The model is then run with
> CarlucR(inputParamList = foo.list, ...)

I can't build inputParamList "by hand" as above because the number of
initial parameters changes with the model run and this runs in a wrapper.

Any thoughts? Some combination of paste with scan or parse?

> version
platform i386-pc-mingw32
arch     i386
os       mingw32
system   i386, mingw32
major    2
minor    0.0
year     2004
month    10
day      04
language R

R-help at stat.math.ethz.ch mailing list
PLEASE do read the posting guide!

More information about the R-help mailing list