我正在尝试将我的 R 代码添加到我的 Latex 文件中。
这是我保存在 R 文件中的 R 代码(输出)
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 39.534 868.517 0.046 0.9648
Besuche10 18.881 9.187 2.055 0.0739 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 385.5 on 8 degrees of freedom
Multiple R-squared: 0.3455, Adjusted R-squared: 0.2637
F-statistic: 4.224 on 1 and 8 DF, p-value: 0.07391
当我编译我的 Latex 文件时,Latex 的 -symbols 存在问题***
:
包 inputenc 错误:无效的 UTF-8 字节序列
我怎么解决这个问题?
谢谢你的帮助。
答案1
您的问题listings
可以通过以下方式解决:
Example1.tex
:
\documentclass{article}
\usepackage{listings}
\lstset{
inputencoding=utf8,
extendedchars=true,
literate={‘}{{`}}1 {’}{{'}}1,}
\begin{document}
\lstinputlisting{script.R}
\end{document}
但由于 script.R 中没有任何语法代码,因此最好只使用verbatim
:
Example2.tex
:
\documentclass{article}
\usepackage{verbatim}
\begin{document}
\verbatiminput{script.R}
\end{document}
话虽如此,但不包括外部保存的 R 输出。使用 R 从文档本身生成该输出knitr
。下面的示例展示了一些显示回归模型摘要部分的方法。
代码有点复杂,主要是因为添加了一个选项来像手动操作一样剪切原始摘要。如果没有这个output.lines
选项,显示摘要就相当简单了。
另一种方法是提取此格式的值,并在您自己的 LaTeX 摘要中格式化这些元素。这里的主要技巧可能是如果您需要星号,而这些星号不在系数矩阵中。
但无论如何,如果您更改源数据、使用已保存的输出或复制和粘贴,所有输出都将自动更新...
Example3.Rnw
(如果您不知道如何编译此文件,请使用 Rstudio > 编译 PDF)。
\documentclass{article}
\usepackage[margin=1cm]{geometry}
\usepackage{booktabs,parskip,tabto}
\begin{document}
\section*{Sample data}
<<xxx,echo=F>>=
# Sample data and model regression
var <- c(1,2,3,4,5,6,7,8,9)
Besuche <- c(111,231,328,450,541,613,711,815,919)
mod <- lm(var~Besuche)
@
var = \Sexpr{var}\par Besuche = \Sexpr{Besuche}
\section*{Raw}
% https://stackoverflow.com/a/23205752/2803235
<<output,echo=F>>=
library(knitr)
hook_output <- knit_hooks$get("output")
knit_hooks$set(output = function(x, options) {
lines <- options$output.lines
if (is.null(lines)) {
return(hook_output(x, options)) # pass to default hook
}
x <- unlist(strsplit(x, "\n"))
more <- " "
if (length(lines)==1) { # first n lines
if (length(x) > lines) {
# truncate the output, but add ....
x <- c(head(x, lines), more)
}
} else {
x <- c(more, x[lines], more)
}
# paste these lines together
x <- paste(c(x, ""), collapse = "\n")
hook_output(x, options)
})
@
<<zzz,echo=F,output.lines=-(1:8),comment=" ">>=
y <- summary(mod)
y
@
\section*{Cooked}
Coefficients:
<<test,echo=F,results='asis'>>=
library(xtable)
options(xtable.floating = FALSE)
DF <- read.table(textConnection(#
capture.output(summary(mod))[11:12]), fill = T)
names(DF) <- c(" ", colnames(coef(summary(mod))), "Signif.")
print(xtable(DF,digits=c(0,0,3,3,3,2,0),display=c("s","s","g","g","g","g","s")), math.style.exponents=T, include.rownames = F, booktabs = T)
@
<<buklreport,echo=F,output.lines=-(1:12),results="asis">>=
y
@
\section*{Floating version}
See the table \ref{float}.
\begin{table}[hb!]
\centering
\caption{Regression coefficients.}\label{float}
<<test2,echo=F,results="asis">>=
print(xtable(y), booktabs = T)
@
\begin{tabular}{ll}
Residual standard error: & \Sexpr{round(y$sigma,4)}
on \Sexpr{y$df[2]} degrees of freedom.\\
Multiple R$^2$: & \Sexpr{round(y$r.squared,4)}.\\
Adjusted R$^2$: & \Sexpr{round(y$adj.r.squared,4)}\\
F-statistic: & \Sexpr{round(y$fstatistic[1],0)} on
\Sexpr{y$fstatistic[2]} and
\Sexpr{y$fstatistic[3]} DF.\\
p-value: & \Sexpr{signif(y$coef[,4][2],4)} \\
\end{tabular}
\end{table}
\end{document}