我試圖使用\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