Two ways to do it, both of which come down to forcing R to recognize "(" as
a string element than an actual parenthesis:

x = data.frame(1:3, 4:6)
colnames(x) = c("(Intercept)","Slope")

x$"(Intercept)"

or x[,"(Intercept)"] # Works with or without the comma in slightly different
ways -- figure out which you need

Alternatively, you can change the name to just "Intercept": this isn't the
most efficient way, but it does avoid the problem of having to know which
column is "(Intercept)"

colnames(x) <- ifelse(colnames(x) == "(Intercept)","Intercept",colnames(x))

Michael

On Mon, Aug 15, 2011 at 10:15 AM, Johannes Radinger <jradin...@gmx.at>wrote:

> Hello,
>
> thank you...it works!
>
> > results.dataframe <- as.data.frame(t(as.data.frame(results.model_runs)))
> > is.data.frame(results.dataframe)
> [1] TRUE
>
> that works...
> just: how to call columns in the dataframe with names like (Intercept),
> rT()...there must be a special handling of names with brackets.
>
> /johannes
>
>
>
> -------- Original-Nachricht --------
> > Datum: Mon, 15 Aug 2011 09:39:47 -0400
> > Von: "R. Michael Weylandt" <michael.weyla...@gmail.com>
> > An: Johannes Radinger <jradin...@gmx.at>
> > CC: r-help@r-project.org
> > Betreff: Re: [R] Extracting information from lm results (multiple model
> runs)
>
> > I can't help with the questions on pooling regressions, but for the
> > question
> > about data-frame usage, I'll note two things.
> >
> > One,
> >
> > > x = data.frame(y = 1:3, z = 4:6)
> > > is.data.frame(x)
> > TRUE
> >
> > > is.data.frame(t(x))
> > FALSE
> >
> > > is.data.frame(as.data.frame(t(x)))
> > TRUE
> >
> > Two, you'll need to check that your row and column names for the
> > transposed
> > data frame are what you expect them to be.
> >
> > Once you do both,(   results2 = as.data.frame(t(results)) & names ) ,
> > results2$intercept should work fine.
> >
> > Hope this helps,
> >
> > Michael Weylandt
> >
> > On Mon, Aug 15, 2011 at 8:32 AM, Johannes Radinger <jradin...@gmx.at>
> > wrote:
> >
> > > Just to inform:
> > > I posted that before in R-sig-ecology but as it might be interesting
> > also
> > > for other useRs, I post it also to the general r-user list:
> > >
> > >
> > > Hello Alexandre,
> > >
> > > thank you very much. I also found another way to extract summarizing
> > > information from lm results over e.g. 1000 repeated model runs:
> > >
> > > results2 <- t(as.data.frame(results))
> > > summary(results2)
> > >
> > > Although some questions popped up in my analysis (procedure see below)
> :
> > >
> > > 1) it seems that I can't get an element with the usual
> > > command like results2$intercept ... that doesn't work here, why?
> > > That would be useful for plotting an element like R-squared etc.
> > > It can be done with e.g hist(results2[,1]) but then I've to know which
> > > column is which coefficient.
> > >
> > > 2) is there a correct way to get a "mean" p - value or any
> > > other mean of the regression coefficients? What is the statistically
> > proper
> > > way to calculate summaries for regression coefficients of many model
> > runs
> > > Or can I just use the mean from the summary? Is there any restriction
> > when
> > > using a log transformation like: lm(log(Y)=log(X1)+X2())?
> > >
> > > 3) How can I check for normality of the residuals in my overall model?
> > > I know how to run lillie.test(resid(lm.model)). But how to do that in
> my
> > > case with 1000 model runs? Perform the test for each run and get an
> > average
> > > or pool the residuals?
> > >
> > > 4)with single lm-runs it is possible to compare the results of
> > > two models with an anova...how can I compare the results of lets
> > > say two models with each 1000 model runs?
> > >
> > >
> > > Thank you very much
> > >
> > > /johannes
> > >
> > >
> > > -------- Original-Nachricht --------
> > > > Datum: Mon, 15 Aug 2011 08:33:52 -0300
> > > > Von: Alexandre Camargo Martensen <acmarten...@gmail.com>
> > > > An: Johannes Radinger <jradin...@gmx.at>
> > > > Betreff: Re: [R-sig-eco] Extracting information from lm results
> > >
> > > > Hi Johannes,
> > > >
> > > > try this
> > > >
> > > > results.df<-data.frame(results)
> > > > #results.df
> > > >
> > > > p<-t(results.df[4,])
> > > > r<-t(results.df[5,])
> > > >
> > > > mean(p)
> > > > mean(r)
> > > >
> > > > HTH,
> > > >
> > > > Alexandre
> > > >
> > > >
> > > > On Mon, Aug 15, 2011 at 8:07 AM, Johannes Radinger <jradin...@gmx.at
> >
> > > > wrote:
> > > >
> > > > > Hello Peter,
> > > > >
> > > > > I just found a mail list correspondence from you in R-sig-eco and
> > > > > found your information and code snipped about extracting
> information
> > > > from
> > > > > lm results very useful. I do have a similar challenge to perform
> > > several
> > > > > lm-regression and in the end I'd like to get e.g a mean value for
> > > > R-squared
> > > > > or p or any other of the regression coefficients.
> > > > >
> > > > > So far I managed to write following code example:
> > > > >
> > > > > #Defining variables
> > > > > Y=c(15,14,23,18,19,9,19,13)
> > > > > X1=c(0.2,0.6,0.45,0.27,0.6,0.14,0.1,0.52)
> > > > > X2a=c(17,22,21,18,19,25,8,19)
> > > > > X2b=c(22,22,29,34,19,26,17,22)
> > > > > X2 <- function()runif(length(X2a), X2a, X2b)
> > > > >
> > > > > #create empty list
> > > > > mod <- list()
> > > > > #perfrom n-model runs for lm
> > > > > for(i in 1:10) {
> > > > >        mod[[paste("run",i,sep="")]] <- lm(Y~X1+X2())
> > > > >        }
> > > > >
> > > > > #define coeficients and how to extract them from lm
> > > > > All_Model_runs <- function(lm){
> > > > >        out <- c(lm$coefficients[1],
> > > > >        lm$coefficients[2],
> > > > >        summary(lm)$coefficients[2,2],
> > > > >        pf(summary(lm)$fstatistic[1], summary(lm)$fstatistic[2],
> > > > >        summary(lm)$fstatistic[3], lower.tail = FALSE),
> > > > >        summary(lm)$r.squared)
> > > > >        names(out) <-
> > > > > c("intercept","slope","slope.SE","p.value","r.squared")
> > > > >        return(out)
> > > > >        }
> > > > >
> > > > > #create empty list
> > > > > results <- list()
> > > > > #get coeffiencts for all model runs into list: results
> > > > > for (i in 1:length(mod)) results[[names(mod)[i]]] <-
> > > > > All_Model_runs(mod[[i]])
> > > > >
> > > > >
> > > > > Now my questions you might probably be able to answer:
> > > > >
> > > > > 1) Is that so far good what I was doing (according to your code)?
> > > > > 2) How can I get a mean/average p value for example or an average
> > > > R-squared
> > > > > over all model runs?
> > > > > 3) Is there any special function to call a mean of these
> > coefficients?
> > > > >
> > > > > Thank you very much
> > > > > /Johannes
> > > > >
> > > > > --
> > > > >
> > > > > _______________________________________________
> > > > > R-sig-ecology mailing list
> > > > > r-sig-ecol...@r-project.org
> > > > > https://stat.ethz.ch/mailman/listinfo/r-sig-ecology
> > > > >
> > >
> > > --
> > >
> > >
> > >
> > >
> > > --
> > >
> > > ______________________________________________
> > > R-help@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.
> > >
>
> --
> NEU: FreePhone - 0ct/min Handyspartarif mit Geld-zurück-Garantie!
> Jetzt informieren: http://www.gmx.net/de/go/freephone
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to