在 Rmarkdown 中打印可读的因子分析输出
Printing readable factor analysis output in Rmarkdown
我必须在 Rmarkdown 文档(最终可以是 pdf、word 或 html)中打印可读的因子分析输出,而我在执行此操作时遇到了真正的麻烦。我有这个问题 here。我是 运行ning psych 版本 1.8.12.
下面是可重现的代码,但我也在这里提供了一个 github 存储库:
注意,当我 运行 results='markup'
pdf 编译时,但 table 不可读:它打印乳胶代码。当我运行results='asis'
时,返回错误! LaTeX Error: \caption outside float.
我对 kabel 和 texreg 等软件包不太熟悉。这些是一个选择吗?
`
title: "Factor Analysis Test"
author: "Simon Kiss"
date: '2019-06-07'
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(psych)
```
```{r}
data('Thurstone')
```
```{r}
mod<-fa(Thurstone, 3)
```
```{r results='markup'}
fa2latex(mod)
````
如果你想输出 table 确保先将其转换为数据帧。
title: "Factor Analysis Test"
author: "Simon Kiss"
date: '2019-06-07'
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(psych)
```
```{r}
data('Thurstone')
```
```{r}
mod<-fa(Thurstone, 3)
```
```{r results='markup'}
knitr::kable(data.frame(psych::fa.sort(mod$loadings)[1:8,]))
在这种情况下,您需要将 fa2latex(mod) 的输出直接添加到文档中,而不是在 {r results='markup'}
中,然后生成 pdf 而不是 html 或医生。将下面的代码复制并粘贴到 Rmd 文档中,看看会发生什么。
---
output:
pdf_document: default
html_document: default
word_document: default
---
title: "Factor Analysis Test"
author: "Simon Kiss"
date: '2019-06-07'
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(psych)
```
```{r}
data('Thurstone')
```
```{r}
mod<-fa(Thurstone, 3)
```
% Called in the psych package fa2latex % Called in the psych package mod
\begin{table}[htpb]\caption{fa2latex}
\begin{center}
\begin{scriptsize}
\begin{tabular} {l r r r r r r }
\multicolumn{ 6 }{l}{ A factor analysis table from the psych package in R } \cr
\hline Variable & MR1 & MR2 & MR3 & h2 & u2 & com \cr
\hline
Sentences & \bf{ 0.90} & -0.03 & 0.04 & 0.82 & 0.18 & 1.01 \cr
Vocabulary & \bf{ 0.89} & 0.06 & -0.03 & 0.84 & 0.16 & 1.01 \cr
Sent.Completion & \bf{ 0.84} & 0.03 & 0.00 & 0.74 & 0.26 & 1.00 \cr
First.Letters & 0.00 & \bf{ 0.85} & 0.00 & 0.73 & 0.27 & 1.00 \cr
Four.Letter.Words & -0.02 & \bf{ 0.75} & 0.10 & 0.63 & 0.37 & 1.04 \cr
Suffixes & 0.18 & \bf{ 0.63} & -0.08 & 0.50 & 0.50 & 1.20 \cr
Letter.Series & 0.03 & -0.01 & \bf{ 0.84} & 0.73 & 0.27 & 1.00 \cr
Pedigrees & \bf{ 0.38} & -0.05 & \bf{ 0.46} & 0.51 & 0.49 & 1.96 \cr
Letter.Group & -0.06 & 0.21 & \bf{ 0.63} & 0.52 & 0.48 & 1.25 \cr
\hline \cr SS loadings & 2.65 & 1.87 & 1.49 & \cr
\cr
\hline \cr
MR1 & 1.00 & 0.59 & 0.53 \cr
MR2 & 0.59 & 1.00 & 0.52 \cr
MR3 & 0.53 & 0.52 & 1.00 \cr
\hline
\end{tabular}
\end{scriptsize}
\end{center}
\label{default}
\end{table}
错误在 fa2latex 输出中。由于某些奇怪的原因,它将 scriptsize
更改为 s\iptsize
。
以下更改修复了输出:
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(psych)
```
```{r}
data('Thurstone')
```
```{r}
mod<-fa(Thurstone, 3)
```
```{r, results='asis'}
a <- fa2latex(mod, silent = T)
cat(gsub('s\iptsize','scriptsize',a))
```
编辑
错误刚刚停止,我无法重现,不确定发生了什么。
突然
```{r, results='asis'}
a <- fa2latex(mod, silent = F)
```
是否按预期工作
好吧,我想这是一个迟到的答案,但是“baap”包可以解决您的问题。您可以在表达不需要的载荷时创建 table 因子载荷。这在 Rmarkdown 格式中也能正常工作。
我必须在 Rmarkdown 文档(最终可以是 pdf、word 或 html)中打印可读的因子分析输出,而我在执行此操作时遇到了真正的麻烦。我有这个问题 here。我是 运行ning psych 版本 1.8.12.
下面是可重现的代码,但我也在这里提供了一个 github 存储库:
注意,当我 运行 results='markup'
pdf 编译时,但 table 不可读:它打印乳胶代码。当我运行results='asis'
时,返回错误! LaTeX Error: \caption outside float.
我对 kabel 和 texreg 等软件包不太熟悉。这些是一个选择吗? `
title: "Factor Analysis Test"
author: "Simon Kiss"
date: '2019-06-07'
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(psych)
```
```{r}
data('Thurstone')
```
```{r}
mod<-fa(Thurstone, 3)
```
```{r results='markup'}
fa2latex(mod)
````
如果你想输出 table 确保先将其转换为数据帧。
title: "Factor Analysis Test"
author: "Simon Kiss"
date: '2019-06-07'
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(psych)
```
```{r}
data('Thurstone')
```
```{r}
mod<-fa(Thurstone, 3)
```
```{r results='markup'}
knitr::kable(data.frame(psych::fa.sort(mod$loadings)[1:8,]))
在这种情况下,您需要将 fa2latex(mod) 的输出直接添加到文档中,而不是在 {r results='markup'}
中,然后生成 pdf 而不是 html 或医生。将下面的代码复制并粘贴到 Rmd 文档中,看看会发生什么。
---
output:
pdf_document: default
html_document: default
word_document: default
---
title: "Factor Analysis Test"
author: "Simon Kiss"
date: '2019-06-07'
output: pdf_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(psych)
```
```{r}
data('Thurstone')
```
```{r}
mod<-fa(Thurstone, 3)
```
% Called in the psych package fa2latex % Called in the psych package mod
\begin{table}[htpb]\caption{fa2latex}
\begin{center}
\begin{scriptsize}
\begin{tabular} {l r r r r r r }
\multicolumn{ 6 }{l}{ A factor analysis table from the psych package in R } \cr
\hline Variable & MR1 & MR2 & MR3 & h2 & u2 & com \cr
\hline
Sentences & \bf{ 0.90} & -0.03 & 0.04 & 0.82 & 0.18 & 1.01 \cr
Vocabulary & \bf{ 0.89} & 0.06 & -0.03 & 0.84 & 0.16 & 1.01 \cr
Sent.Completion & \bf{ 0.84} & 0.03 & 0.00 & 0.74 & 0.26 & 1.00 \cr
First.Letters & 0.00 & \bf{ 0.85} & 0.00 & 0.73 & 0.27 & 1.00 \cr
Four.Letter.Words & -0.02 & \bf{ 0.75} & 0.10 & 0.63 & 0.37 & 1.04 \cr
Suffixes & 0.18 & \bf{ 0.63} & -0.08 & 0.50 & 0.50 & 1.20 \cr
Letter.Series & 0.03 & -0.01 & \bf{ 0.84} & 0.73 & 0.27 & 1.00 \cr
Pedigrees & \bf{ 0.38} & -0.05 & \bf{ 0.46} & 0.51 & 0.49 & 1.96 \cr
Letter.Group & -0.06 & 0.21 & \bf{ 0.63} & 0.52 & 0.48 & 1.25 \cr
\hline \cr SS loadings & 2.65 & 1.87 & 1.49 & \cr
\cr
\hline \cr
MR1 & 1.00 & 0.59 & 0.53 \cr
MR2 & 0.59 & 1.00 & 0.52 \cr
MR3 & 0.53 & 0.52 & 1.00 \cr
\hline
\end{tabular}
\end{scriptsize}
\end{center}
\label{default}
\end{table}
错误在 fa2latex 输出中。由于某些奇怪的原因,它将 scriptsize
更改为 s\iptsize
。
以下更改修复了输出:
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
```{r}
library(psych)
```
```{r}
data('Thurstone')
```
```{r}
mod<-fa(Thurstone, 3)
```
```{r, results='asis'}
a <- fa2latex(mod, silent = T)
cat(gsub('s\iptsize','scriptsize',a))
```
编辑
错误刚刚停止,我无法重现,不确定发生了什么。 突然
```{r, results='asis'}
a <- fa2latex(mod, silent = F)
```
是否按预期工作
好吧,我想这是一个迟到的答案,但是“baap”包可以解决您的问题。您可以在表达不需要的载荷时创建 table 因子载荷。这在 Rmarkdown 格式中也能正常工作。