Распечатка читабельного факторного анализа в Rmarkdown - PullRequest
0 голосов
/ 07 июня 2019

Я должен напечатать читаемый вывод факторного анализа в документе Rmarkdown (в конечном итоге это может быть pdf, word или html), и у меня возникают реальные проблемы с этим.У меня была эта проблема здесь .Я использую психическую версию 1.8.12.

Воспроизводимый код приведен ниже, но я также разместил репозиторий github здесь:

Обратите внимание, когда я запускаю results='markup', pdf компилируется, нотаблица не читается: она печатает латексный код.Когда я запускаю 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)
````

Ответы [ 3 ]

1 голос
/ 07 июня 2019

Ошибка в выходе 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))
```

EDIT

Ошибка просто перестала быть воспроизводимой для меня, не уверен, что происходит. Внезапно

```{r, results='asis'} 
a <- fa2latex(mod, silent = F)
```

работает как задумано

0 голосов
/ 07 июня 2019

в этом случае вам нужно добавить вывод 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} 
0 голосов
/ 07 июня 2019

если вы хотите вывести таблицу, сначала убедитесь, что она преобразована в фрейм данных.

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,]))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...