[R] error using lapply with oneway_test (coin package)

Duncan Murdoch murdoch at stats.uwo.ca
Thu May 7 14:08:42 CEST 2009


On 07/05/2009 6:11 AM, Matthieu Dubois wrote:
> Dear expeRts,
> 
> I would like to use a oneway_test (from package coin) to test whether  
> two groups differ on various variables. The variables are encoded  
> within a data frame. Unfortunately, I obtained an error, that I don't  
> understand. Could you please help me ?
> 
> Example:
> library(coin)
> y <- as.data.frame(matrix(rnorm(200), ncol=2))
> group <- as.factor(unif(100))
> 
> lapply(y, function(var) oneway_test(var ~ group))
> 
> Error message is:
> (in French, my locale) Erreur dans eval(expr, envir, enclos) : objet  
> 'var' introuvable
> (my personal translation in English) Error in eval(expr, envir,  
> enclos) : object 'var' not found

That's a scoping problem, I think a bug in oneway_test.  Because the 
formula var ~ group is created with the anonymous function within 
lapply, its environment should be the evaluation frame of that function 
call and var should be visible.  If I replace oneway_test() with lm() it 
works.

I think a workaround is to construct the data argument explicitly, i.e.

lapply(y, function(var) oneway_test(var ~ group, data.frame(var=var, 
group=group)))

I've cc'd Torsten Hothorn, the maintainer of coin.

Duncan Murdoch

> 
> Thank you,
> 
> Matthieu
> 
> Matthieu Dubois
> Post-doctoral fellow
> 
> Psychology and NeuroCognition Lab (CNRS UMR 5105)
> Université Pierre Mendès-France
> BP47 --- 38040 Grenoble Cedex 9 --- France
> 
> Email: matthieu.dubois at upmf-grenoble.fr
> Gmail: matthdub at gmail.com
> http://web.upmf-grenoble.fr/LPNC/membre_matthieu_dubois
> 
> 
> 
> 
> 
> 	[[alternative HTML version deleted]]
> 
> 
> 
> ------------------------------------------------------------------------
> 
> ______________________________________________
> 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.




More information about the R-help mailing list