From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>

Date: Tue, 13 May 2008 17:04:24 +0100 (BST)

Date: Tue, 13 May 2008 17:04:24 +0100 (BST)

You are using subset() as a function -- lme has a subset argument, and subset() has non-standard semantics.

The dataset you are using is subset(D1,age!=14): it is that which you need to make sure is visible. You didn't make D1 visible, just its columns.

On Tue, 13 May 2008, Jorunn Slagstad wrote:

> Hi again,

*>
**> I've tried using with() inside my function in the following manner:
**>
**> library(nlme)
**> library(MASS)
**> PredRes<-function(D1)
**> {
**> with(D1, {lmemod<-lme(distance~age*Sex, random=~1|Subject,
**> data=subset(D1,age!=14), method="ML")
**> themod<-stepAIC(lmemod,dir="both")
**> summary(themod)
**> prs=predict(themod,newdata=subset(D1,age==14))
**> obs<-subset(D1,age==14)$distance
**> print(mean(obs-prs))
**> } )
**> }
**>
**> but the error message still reads:
**>
**>> PredRes(Orthodont)
**> Start: AIC=345.12
**> distance ~ age * Sex
**>
**> Error in subset(D1, age != 14) : object "D1" not found
**>
**> Does this mean that the only option for making a function of this type
**> work is to use the "<<-" operator?
**> --
**> Regards
**> Jorunn
**>
**>
**>
**> 2008/5/9 Prof Brian Ripley <ripley_at_stats.ox.ac.uk>:
**>> It's a known scoping issue in lme -- you are doing this from a function.
**>> Make sure your dataset is visible -- e.g. use with().
**>>
**>>
**>>
**>> On Fri, 9 May 2008, Jorunn Slagstad wrote:
**>>
**>>
**>>> Dear R-help
**>>>
**>>> I'm working on a large dataset which I have divided into 20 subsets based
**>> on similar features. Each subset consists of observations from different
**>> locations and I wish to use the location as a random effect.
**>>> For each group I want to select regressors by a stepwise procedure and
**>> include a random effect on the intercept. I use stepAIC() and lme(). (The
**>> lmer()-function doesn't work with the stepAIC()-function.)
**>>>
**>>> Since I have many groups, and I wish to do the same thing for each group,
**>> I have constructed a function which takes the dataset as input variable and
**>> gives a prediction result (here mean absolute error) as output.
**>>>
**>>> This is an example using the Orthodont dataset:
**>>>
**>>> library(MASS)
**>>> library(nlme)
**>>> PredRes<-function(D1)
**>>> {
**>>> lmemod=lme(distance~age*Sex, random=~1|Subject,
**>> data=subset(D1,age!=14),method="ML")
**>>> themod=stepAIC(lmemod,dir="both")
**>>> prs=predict(themod,newdata=subset(D1,age==14))
**>>> obs<-subset(D1,age==14)$distance
**>>> print(mean(obs-prs))
**>>> }
**>>>
**>>> Using this function with D1=Orthodont gives:
**>>>
**>>>
**>>>> PredRes(Orthodont)
**>>>>
**>>> Start: AIC=345.12
**>>> distance ~ age * Sex
**>>>
**>>> Error in subset(D1, age != 14) : object "D1" not found
**>>>
**>>> The code works when I take Orthodont in directly:
**>>>
**>>>
**>>>> lmemod=lme(distance~age*Sex, random=~1|Subject,
**>> data=subset(Orthodont,age!=14),method="ML")
**>>>> themod=stepAIC(lmemod,dir="both")
**>>>>
**>>> Start: AIC=345.12
**>>> distance ~ age * Sex
**>>>
**>>> Df AIC
**>>> - age:Sex 1 344.49
**>>> <none> 345.12
**>>>
**>>> Step: AIC=344.49
**>>> distance ~ age + Sex
**>>>
**>>> Df AIC
**>>> <none> 344.49
**>>> + age:Sex 1 345.12
**>>> - Sex 1 348.70
**>>> - age 1 371.77
**>>>
**>>>> prs=predict(themod,newdata=subset(Orthodont,age==14))
**>>>> obs<-subset(Orthodont,age==14)$distance
**>>>> print(mean(obs-prs))
**>>>>
**>>> [1] 0.2962963
**>>>
**>>> How can I make this code work with dataset av input variable in a
**>> function?
**>>>
**>>> I'm using R version:
**>>>
**>>> Version:
**>>> platform = x86_64-unknown-linux-gnu
**>>> arch = x86_64
**>>> os = linux-gnu
**>>> system = x86_64, linux-gnu
**>>> status =
**>>> major = 2
**>>> minor = 6.0
**>>> year = 2007
**>>> month = 10
**>>> day = 03
**>>> svn rev = 43063
**>>> language = R
**>>> version.string = R version 2.6.0 (2007-10-03)
**>>>
**>>> Locale:
**>>>
**>> LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=en_US.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=en_US.UTF-8;LC_MESSAGES=en_US.UTF-8;LC_PAPER=en_US.UTF-8;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=en_US.UTF-8;LC_IDENTIFICATION=C
**>>>
**>>> Search Path:
**>>> .GlobalEnv, package:MASS, package:nlme, package:stats, package:graphics,
**>> package:grDevices, package:utils, package:datasets, package:methods,
**>> Autoloads, package:base
**>>>
**>>> By the way the R version 2.7.0 Patched (2008-05-08 r45647) gives the same
**>> error message.
**>>>
**>>> --
**>>> Regards
**>>> Jorunn Slagstad
**>>>
**>>> ______________________________________________
**>>> R-help_at_r-project.org mailing list
**>>> https://stat.ethz.ch/mailman/listinfo/r-help
**>>> PLEASE do read the posting guide
**>> http://www.R-project.org/posting-guide.html
**>>> and provide commented, minimal, self-contained, reproducible code.
**>>>
**>>>
**>>
**>> --
**>> Brian D. Ripley, ripley_at_stats.ox.ac.uk
**>> Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
**>> University of Oxford, Tel: +44 1865 272861 (self)
**>> 1 South Parks Road, +44 1865 272866 (PA)
**>> Oxford OX1 3TG, UK Fax: +44 1865 272595
**>>
**>>
**>>
**>> ______________________________________________
**>> R-help_at_r-project.org mailing list
**>> https://stat.ethz.ch/mailman/listinfo/r-help
**>> PLEASE do read the posting guide
**>> http://www.R-project.org/posting-guide.html
**>> and provide commented, minimal, self-contained, reproducible code.
**>>
**>
*

-- Brian D. Ripley, ripley_at_stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595 ______________________________________________ R-help_at_r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.Received on Tue 13 May 2008 - 17:32:14 GMT

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.2.0, at Tue 13 May 2008 - 18:30:38 GMT.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*