我试图使用\Sexpr{}
将我的R对象的值包含在LaTeX表中。我基本上试图在R中复制一个lm
对象的汇总输出,因为xtable的内置方法xtable.lm
和xtable.summary.lm
似乎没有包含Fstats,调整后的R平方等等(所有的东西都放在总结打印输出的底部R控制台中的lm对象)所以我尝试通过构建矩阵来复制xtable.summary.lm
输出,然后构建相关信息的数据框以获得更多内容,以便我可以使用\Sexpr{}
来引用值。我试图通过使用add.to.row
附加\multicolumn{}
命令来合并LaTeX表的最后一行的所有列,然后将所需的所有信息传递到表格的单元格中。在LaTeX表格环境中使用 Sexpr {}
问题是我得到"Undefined control sequence"
为\multicolumn{}
表达式中的\Sexpr{}
表达式。这两个不兼容?如果是这样,我做错了什么,如果没有人知道如何做我想做的事情?
感谢,
这里是我的代码的相关部分:
<<Test, results=tex>>=
model1 <- lm(stndfnl ~ atndrte + frosh + soph)
# Build matrix to replicate xtable.summary.lm output
x <- summary(model1)
colnames <- c("Estimate", "Std. Error", "t value", "Pr(<|t|)")
rownames <- c("(Intercept)", attr(x$terms, "term.labels"))
fpval <- pf(x$fstatistic[1],x$fstatistic[2], x$fstatistic[3], lower.tail=FALSE)
mat1 <- matrix(coef(x), nrow=length(rownames), ncol=length(colnames), dimnames=list(rownames,colnames))
# Make a data frame for extra information to be called by \Sexpr in last row of table
residse <- x$sigma
degf <- x$df[2]
multr2 <- x$r.squared
adjr2 <- x$adj.r.squared
fstat <- x$fstatistic[1]
fstatdf1 <- x$fstatistic[2]
fstatdf2 <- x$fstatistic[3]
extradat <- data.frame(v1 = round(residse,4), v2 =degf, v3=round(multr2,4), v4=round(adjr2,4),v5=round(fstat,3), v6=fstatdf1, v7=fstatdf2, v8=round(fpval,6))
addtorow<- list()
addtorow$pos <-list()
addtorow$pos[[1]] <- dim(mat1)[1]
addtorow$command <-c('\\hline \\multicolumn{5}{l}{Residual standard error:\\Sexpr{extradat$v1}} \\\\ ')
print(xtable(mat1, caption="Summary Results for Regression in Equation \\eqref{model1} ", label="tab:model1"), add.to.row=addtorow, sanitize.text.function=NULL, caption.placement="top")
感谢您的帮助! – 2011-03-11 03:58:50