[R] lmekin() function in kinship package
Qiong Yang
qyang at bu.edu
Mon Jun 11 17:32:00 CEST 2007
Hi,
I had a problem with the lmekin() in kinship package:
lmekin() can not be wrapped into another function
library(kinship)
#creat an example dataset
xx<-rnorm(100)
yy<-rnorm(100)
id<-1:100
test.dat<-as.data.frame(cbind(xx,yy,id))
rm(xx,yy,id)
a<-bdsmatrix(rep(10,10),rep(block,10),dimnames=list(c(1:100),c(1:100)))
#100x100 block (n=10) diagonal matrix to indicate the correlation between the 100 observations
#this works, call lmekin directly
lmekin(yy~xx,random=~1|id,data=test.dat,varlist=a,na.action=na.omit)
#this doesn't work, wrap into another function
fo<-function(x,y,z,data)lmekin(y~x,random=~1|z,data=test.dat,varlist=a,na.action=na.omit)
fo(xx,yy,id)
Error in eval(expr, envir, enclos) : Object "y" not found
I did line by line debug within lmekin(). I found the problem was from
line #25
m <- eval(m, sys.parent())
Here is the print(m) result before this line
[1] model.frame(data = data, na.action = na.omit, formula = y ~ x +z)
I will appreciate anyone help me figure out why data cannot be passed
to the arguments when lmekin() is wrapped into another function? And what can be done
to fix it?
Thanks
Qiong
More information about the R-help
mailing list