我正在尝试将\Sexpr{}
我的 R 对象中的值包含在 LaTeX 表中。我实际上是在尝试lm
在 R 中复制对象的摘要输出,因为 xtable 的内置方法似乎不包括 Fstats、调整后的 R 平方等(lm 对象的摘要打印输出底部的所有xtable.lm
内容xtable.summary.lm
在 R 控制台中)所以我尝试通过构建一个矩阵来复制xtable.summary.lm
输出来实现这一点,然后为额外的东西构建一个相关信息的数据框,这样我就可以使用\Sexpr{}
. 我尝试通过使用add.to.row
附加\multicolumn{}
命令来合并 LaTeX 表最后一行的所有列,然后将我需要的所有信息传递到表的该单元格中。
问题是我在表达式中得到了一个"Undefined control sequence"
for表达式。这两个不兼容吗?如果是这样,我做错了什么,如果没有,有人知道如何做我想做的事吗?\Sexpr{}
\multicolumn{}
谢谢,
这是我的代码的相关部分:
<<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")