1

\Sexpr{}R オブジェクトの値を LaTeX テーブルに含めるために使用しようとしています。lmxtableの組み込みメソッドにはFstats、調整されたR-squaredなどが含まれていないように見えるため、基本的にRでオブジェクトxtable.lmxtable.summary.lm要約出力を複製しようとしています(lmオブジェクトの要約出力の下部にあるすべてのものRコンソールで)出力を複製するマトリックスをxtable.summary.lm構築し、追加のものに関連する情報のデータフレームを構築して、\Sexpr{}. LaTeXテーブルの最後の行のすべての列をマージし、必要なすべての情報をテーブルのそのセルに渡すためにadd.to.row、コマンドを追加してこれを試みました。\multicolumn{}

問題は、式の式に"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")
4

1 に答える 1

2

R コードに Sexpr を含める必要はありません。R コードは式を直接使用できます。Sexpr は LaTeX コマンドのように見えますが、LaTeX コマンドではありません。これは Sweave コマンドであるため、R コードからの出力として使用することはできません。

試す

addtorow$command <-paste('\\hline \\multicolumn{5}{l}{Residual standard error:',
                         extradat$v1, '} \\\\ ')

また、 で使用される行列を完全に再作成する必要はありませんxtable。デフォルトの出力に基づいて作成するだけです。上記のものに基づいて構築すると、次のようになります。

mytab <- xtable(model1, caption="Summary Results", label="tab:model1")
addtorow$pos[[1]] <- dim(mytab)[1]
print(mytab, add.to.row=addtorow, sanitize.text.function=NULL, 
             caption.placement="top")

そのまま使用できる例については、http://people.su.se/~lundh/reproduce/sweaveintro.pdfを参照してください。

于 2011-03-10T18:40:07.087 に答える