On Thu, 2005-07-28 at 14:00 -0700, Juned Siddique wrote:> Hi. I want to create a table in latex with regression coefficients and
their
> corresponding p-values. My code is below. How do I format the p-values so
> that values less than 0.0001 are formated as <.0001 rather than just
rounded
> to 0.0000? Thank you.
>
> model<-lm(y~x1+x2)
>
> output<-summary(model)
> output<-as.matrix(coefficients(output))
> output<-format.df(ouput,cdec=c(2,2,2,4))
>
> latex(output,longtable=TRUE, file="C:/model.tex")
I have not used Frank's latex() function, so there may be a setting that
helps with this, but something along the lines of:
# Using one example from ?lm:
ctl <- c(4.17,5.58,5.18,6.11,4.50,4.61,5.17,4.53,5.33,5.14)
trt <- c(4.81,4.17,4.41,3.59,5.87,3.83,6.03,4.89,4.32,4.69)
group <- gl(2,10,20, labels=c("Ctl","Trt"))
weight <- c(ctl, trt)
lm.D9 <- lm(weight ~ group)
output <- (summary(lm.D9))
output <- as.matrix(coefficients(output))
output <- format.df(output, rdec = c(2, 2, 2, 4))
# Here is the line to re-format the p values
# Note that column alignment on the decimal may be problematic here
# depending upon the specifications for column justifications.
# If the column is right justified, it should be easier, since we
# are forcing four decimal places.
output[, 4] <- ifelse(as.numeric(output[, 4]) < 0.0001,
"$<$0.0001", sprintf("%6.4f",
output[, 4]))
> output
Estimate Std. Error t value Pr(>|t|)
(Intercept) "5.03" "0.22" "22.85"
"$<$0.0001"
groupTrt "-0.37" "0.3114" "-1.19"
"0.2490"
attr(,"col.just")
[1] "r" "r" "r" "r"
Note the use of "$" to indicate math mode for the symbols. Presumably
Frank has a similar approach when the object passed to latex() is a
model, since the heading for the p value column should end up being
something like:
Pr($>$$|$t$|$)
and the minus signs in the second line should similarly be surrounded:
$-$0.37
I have cc:d Frank here for his clarifications.
HTH,
Marc Schwartz