rを使用して複数のテーブルをプログラムでsweveドキュメントに含める方法

StackOverflow https://stackoverflow.com/questions/2730490

  •  02-10-2019
  •  | 
  •  

質問

さまざまな数のテーブルを含むseaveドキュメントが必要です。以下の例は機能すると思いましたが、そうではありません。リストの上にループして、各要素を自分のテーブルとして印刷したいと思います。

% 
\documentclass[a4paper]{article}
\usepackage[OT1]{fontenc}
\usepackage{longtable}
\usepackage{geometry}
\usepackage{Sweave}
\geometry{left=1.25in, right=1.25in, top=1in, bottom=1in}
\listfiles
\begin{document}

<<label=start, echo=FALSE, include=FALSE>>=
startt<-proc.time()[3]
library(RODBC)
library(psych)
library(xtable)
library(plyr)
library(ggplot2)
options(width=80)

#Produce some example data, here I'm creating some dummy dataframes and putting them in a list
foo<-list()
foo[[1]]<-data.frame(GRP=c(rep("AA",10), rep("Aa",10), rep("aa",10)), X1=rnorm(30), X2=rnorm(30,5,2))
foo[[2]]<-data.frame(GRP=c(rep("BB",10), rep("bB",10), rep("BB",10)), X1=rnorm(30), X2=rnorm(30,5,2))
foo[[3]]<-data.frame(GRP=c(rep("CC",12), rep("cc",18)), X1=rnorm(30), X2=rnorm(30,5,2))
foo[[4]]<-data.frame(GRP=c(rep("DD",10), rep("Dd",10), rep("dd",10)), X1=rnorm(30), X2=rnorm(30,5,2))
@ 

\title{Docuemnt to test putting a variable number of tables into a sweave Document}
\author{"Paul Hurley"}
\maketitle

\section{Text}

This document was created on \today, with \Sexpr{print(version$version.string)} running
 on a \Sexpr{print(version$platform)} platform. It took approx \input{time} sec to process.

<<label=test, echo=FALSE, results=tex>>= 
cat("Foo")
@ 
that was a test, so is this
<<label=table1test, echo=FALSE, results=tex>>=
print(xtable(foo[[1]]))
@ 
\newpage

\subsection{Tables}

<<label=Tables, echo=FALSE, results=tex>>=
for(i in seq(foo)){
    cat("\n")
    cat(paste("Table_",i,sep=""))
    cat("\n")
    print(xtable(foo[[i]]))
    cat("\n")
    }
#cat("<<label=endofTables>>= ")
@ 


<<label=bye, include=FALSE, echo=FALSE>>= 
endt<-proc.time()[3]
elapsedtime<-as.numeric(endt-startt)
@ 
<<label=elapsed, include=FALSE, echo=FALSE>>=
fileConn<-file("time.tex", "wt") 
writeLines(as.character(elapsedtime), fileConn) 
close(fileConn) 
@ 

\end{document}

ここでは、Table1testチャンクは予想どおりに機能し、Foo [[1]]のデータフレームに基づいてテーブルを作成しましたが、ループはテーブルのみを生成します(アンダースコア)1 ....

役に立ちましたか?

解決

これは、この声明のアンダースコアによって引き起こされています。

cat(paste("Table_",i,sep=""))

に変更する場合

cat(paste("Table ",i,sep=""))

または

cat(paste("Table\\textunderscore",i,sep=""))

それは実行されます。それらの数字が添え字として欲しかったのですか?

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top