1

在使用 LaTeX/beamer 的 knitr 演示文稿中,我想说明这个sem包,其中有几个函数在内部用于scan()读取然后解析数据和模型规范。

以下块给出了 knitr 错误

<<union1>>=
library(sem)
union <- readMoments(diag=TRUE,
         names=c('y1', 'y2', 'y3', 'x1', 'x2'))
    14.610
    -5.250  11.017
    -8.057  11.087   31.971
    -0.482   0.677    1.559   1.021
   -18.857  17.861   28.250   7.139  215.662

@

此处显示:

 <text>:5:13: unexpected numeric constant
4:           14.610
5:     -5.250  11.017
           ^    

即使我eval=FALSE在块中使用,我也会收到错误,但我确实得到了一些合理的 PDF 文件输出。

另一个例子,同样给出错误的是这个块来指定一个 sem 模型:

<<union2, eval=FALSE >>=
union.mod <- specifyEquations(covs=c("x1", "x2"))
y1 = gam12*x2
y2 = beta21*y1 + gam22*x2
y3 = beta31*y1 + beta32*y2 + gam31*x1

@

这些都在 R 控制台中工作。如何使用 knitr 完成它们?

我理解为什么scan()在块中不起作用以及如何使用参数解决这个问题,但是当块中调用的函数在内部text使用时,我不知道如何解决这个问题。scan()

我也明白我可以将数据放在一个文件中,union.txt并使用类似的东西

<<union1>>=
library(sem)
union <- readMoments(file='union.txt', diag=TRUE,
         names=c('y1', 'y2', 'y3', 'x1', 'x2'))
@

但后来我不知道如何在演示文稿中显示这个文件的内容。

4

1 回答 1

1

John Fox 指出,semR-Forge 上的包的开发版本现在包含一个text参数,该参数通过读取 textConnection 来简化这一点。我现在可以将其用作:

<<union1, size='footnotesize' >>=
library(sem)
union <- readMoments(diag=TRUE,
         names=c('y1', 'y2', 'y3', 'x1', 'x2'),
         text="
    14.610
    -5.250  11.017
    -8.057  11.087   31.971
    -0.482   0.677    1.559   1.021
   -18.857  17.861   28.250   7.139  215.662
")
@
于 2015-04-27T21:51:30.767 回答