markleeds at verizon.net
2008-Dec-13 06:54 UTC
[R] weird pasting of ".value" when list is returned
could someone explain why the name of FPVAL gets " .value" concatenated onto it when the code below is run and temp is returned. I've been trying to figure this out for too long. It doesn't matter when I put the FPVAL in the return statement. It happens regardless of whether it's first or last. Thanks. f.lmmultenhanced <- function(response, pred1, pred2) { regmod <- lm(response ~ pred1 + pred2) lmsum <- summary(regmod) imbcoef<-lmsum$coefficients[2,1] retcoef<-lmsum$coefficients[3,1] imbpval<-lmsum$coefficients[2,4] retpval<-lmsum$coefficients[3,4] Fstat<-lmsum$fstatistic[1] fpval<-pf(Fstat,lmsum$fstatistic[2],lmsum$fstatistic[3],lower=FALSE) return(list(categrsp=response,pred1=pred1,pred2=pred2,regmod=regmod, rest=c("FPVAL"=fpval,"IMBCOEF"=imbcoef,"RETCOEF"=retcoef,"IMBPVAL"=imbpval,"RETPVAL"=retpval) )) } x <- 10 + 1:100 y <- 5 + seq(2,200,by=2) z <- 2*x + 3*y + rnorm(100) temp <- f.lmmultenhanced(x,y,z) print(temp)
Hi Mark, I cannot explain why it does it. But if you use data.frame instead, it works. Cheers, Daniel f.lmmultenhanced <- function(response, pred1, pred2) { regmod <- lm(response ~ pred1 + pred2) lmsum <- summary(regmod) imbcoef<-lmsum$coefficients[2,1] retcoef<-lmsum$coefficients[3,1] imbpval<-lmsum$coefficients[2,4] retpval<-lmsum$coefficients[3,4] Fstat<-lmsum$fstatistic[1] fpval<-pf(Fstat,lmsum$fstatistic[2],lmsum$fstatistic[3],lower=FALSE) return(list(categrsp=response,pred1=pred1,pred2=pred2,regmod=regmod,rest=dat a.frame(KARLGUSTAV=fpval,IMBCOEF=imbcoef,RETCOEF=retcoef,IMBPVAL=imbpval,RET PVAL=retpval))) } x <- 10 + 1:100 y <- 5 + seq(2,200,by=2) z <- 2*x + 3*y + rnorm(100) temp <- f.lmmultenhanced(x,y,z) print(temp) ------------------------- cuncta stricte discussurus ------------------------- -----Urspr?ngliche Nachricht----- Von: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] Im Auftrag von markleeds at verizon.net Gesendet: Saturday, December 13, 2008 1:54 AM An: r-help at r-project.org Betreff: [R] weird pasting of ".value" when list is returned could someone explain why the name of FPVAL gets " .value" concatenated onto it when the code below is run and temp is returned. I've been trying to figure this out for too long. It doesn't matter when I put the FPVAL in the return statement. It happens regardless of whether it's first or last. Thanks. f.lmmultenhanced <- function(response, pred1, pred2) { regmod <- lm(response ~ pred1 + pred2) lmsum <- summary(regmod) imbcoef<-lmsum$coefficients[2,1] retcoef<-lmsum$coefficients[3,1] imbpval<-lmsum$coefficients[2,4] retpval<-lmsum$coefficients[3,4] Fstat<-lmsum$fstatistic[1] fpval<-pf(Fstat,lmsum$fstatistic[2],lmsum$fstatistic[3],lower=FALSE) return(list(categrsp=response,pred1=pred1,pred2=pred2,regmod=regmod, rest=c("FPVAL"=fpval,"IMBCOEF"=imbcoef,"RETCOEF"=retcoef,"IMBPVAL"=imbpval," RETPVAL"=retpval) )) } x <- 10 + 1:100 y <- 5 + seq(2,200,by=2) z <- 2*x + 3*y + rnorm(100) temp <- f.lmmultenhanced(x,y,z) print(temp) ______________________________________________ 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.
Charles C. Berry
2008-Dec-13 18:18 UTC
[R] weird pasting of ".value" when list is returned
On Sat, 13 Dec 2008, markleeds at verizon.net wrote:> could someone explain why the name of FPVAL gets " .value" concatenated onto > it when the code below is run and temp is returned. > I've been trying to figure this out for too long. It doesn't matter when I > put the FPVAL in the return statement. It happens regardless of > whether it's first or last. Thanks.Mark, It is because the sole element of fpval is named 'value'. Check this:> foo<-function() return(list(a=1,b=c(x=c(value=1),y=c(nother.name=2)))) > foo()$a [1] 1 $b x.value y.nother.name 1 2 HTH, Chuck> > f.lmmultenhanced <- > function(response, pred1, pred2) > > { > > regmod <- lm(response ~ pred1 + pred2) > lmsum <- summary(regmod) > > imbcoef<-lmsum$coefficients[2,1] > retcoef<-lmsum$coefficients[3,1] > > imbpval<-lmsum$coefficients[2,4] > retpval<-lmsum$coefficients[3,4] > > Fstat<-lmsum$fstatistic[1] > > fpval<-pf(Fstat,lmsum$fstatistic[2],lmsum$fstatistic[3],lower=FALSE) > > > return(list(categrsp=response,pred1=pred1,pred2=pred2,regmod=regmod, > > rest=c("FPVAL"=fpval,"IMBCOEF"=imbcoef,"RETCOEF"=retcoef,"IMBPVAL"=imbpval,"RETPVAL"=retpval) > )) > > } > > > x <- 10 + 1:100 > y <- 5 + seq(2,200,by=2) > z <- 2*x + 3*y + rnorm(100) > > temp <- f.lmmultenhanced(x,y,z) > print(temp) > > ______________________________________________ > 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. >Charles C. Berry (858) 534-2098 Dept of Family/Preventive Medicine E mailto:cberry at tajo.ucsd.edu UC San Diego http://famprevmed.ucsd.edu/faculty/cberry/ La Jolla, San Diego 92093-0901