Стебель и лист из R в латекс - PullRequest
3 голосов
/ 07 сентября 2011

Учитель статистики средней школы здесь, извините за простой вопрос (или, возможно, не такой простой).

Я использую R, чтобы создать сюжетную линию.Я пытаюсь превратить вывод стволовых и стволовых из ствола () в LaTeX.Вот что я получил до сих пор:

y<- c(50, 26, 31, 57, 19, 24, 22, 23, 38, 13, 50, 13, 34, 23, 30, 49, 13, 15, 51)
stem(y)

Я пытался использовать xtables (потому что он работает для моих простых двусторонних таблиц) как таковой:

print(xtable(stem(y)), type="latex", latex.environments=c("center"), tabular.environment =    "tabular", NA.string = "")

и я получаю эту ошибку:

Error in UseMethod("xtable") : no applicable method for 'xtable' applied to an object of class "NULL"

Я пробовал варианты вариантов, но получаю похожие результаты.Из того, что я могу понять, вывод из stem () не является фреймом или матрицей данных, поэтому xtables это не нравится.Я попытался изменить его на фрейм / матрицу данных, используя as.data.frame () и as.matrix (), но безуспешно.Любая помощь будет оценена.Я провел несколько поисков в Google без каких-либо полезных результатов и просмотрел сайт stackoverflow.Любая помощь будет оценена.

Ответы [ 3 ]

5 голосов
/ 07 сентября 2011

Заимствование в значительной степени из решения, предоставленного @DWin:

Вы можете захватить вывод из оператора print с помощью capture.output и преобразовать его в латекс, используя latexTranslate в пакете HMisc:

library(Hmisc)
latexTranslate(capture.output(stem(y)))

[1] ""                                                         
[2] "  The decimal point is 1 digit(s) to the right of the $|$"
[3] ""                                                         
[4] "  1 $|$ 33359"                                            
[5] "  2 $|$ 23346"                                            
[6] "  3 $|$ 0148"                                             
[7] "  4 $|$ 9"                                                
[8] "  5 $|$ 0017"                                             
[9] ""         
3 голосов
/ 07 сентября 2011

Я предполагаю, что вы просто хотите экспортировать результат в латекс, я прав?

Возможно, вы захотите попробовать следующий код Sweave, который прошел тест:

\documentclass{article}

\usepackage{listings}

\begin{document}

\begin{lstlisting}
<<echo=F, results=tex>>=
y<- c(50, 26, 31, 57, 19, 24, 22, 23, 38, 13, 50, 13, 34, 23, 30, 49, 13, 15, 51)
stem(y)
@ 
\end{lstlisting}

\end{document}
1 голос
/ 07 сентября 2011

Функция stem возвращает NULL. Это работает только через побочный эффект печати на консольное устройство.

Вы также можете использовать раковину, но я предполагаю, что это не намного ближе к вашей цели

sink("stem.out")
stem(y)
sink()

Когда я запускаю это через функцию Hmisc latex, я получаю:

latex(readLines("stem.out")
#--------file output follows----
% latex.default(readLines("stem.out")) 
%
\begin{table}[!tbp]
 \begin{center}
 \begin{tabular}{l}\hline\hline
\multicolumn{1}{c}{}\tabularnewline
\hline
\tabularnewline
  The decimal point is 1 digit(s) to the right of the |\tabularnewline
\tabularnewline
  1 | 33359\tabularnewline
  2 | 23346\tabularnewline
  3 | 0148\tabularnewline
  4 | 9\tabularnewline
  5 | 0017\tabularnewline
\tabularnewline
\hline
\end{tabular}

\end{center}

\end{table}
#---------  end of file ------
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...