R에서 라텍스 테이블을 만드는 도구
일반적으로 요청하면, R의 라텍스 테이블 제작에 관한 커뮤니티 위키.이 게시물에서 저는 덜 간단한 물체로부터 라텍스 테이블을 생성하기 위한 코드가 있는 가장 일반적으로 사용되는 패키지와 블로그에 대한 개요를 제공할 것입니다.제가 놓친 부분을 자유롭게 추가하거나, R로 라텍스 테이블을 멋지게 포맷하는 방법에 대한 팁, 힌트 및 작은 요령을 알려주십시오.
패키지:
- xtable : 대부분의 단순 개체의 표준 테이블에 사용됩니다.예시가 있는 멋진 갤러리를 여기서 찾을 수 있습니다.
- memisc : 측량 데이터를 관리하는 도구로, (기본) 회귀 모형 추정치의 라텍스 표에 대한 일부 도구가 포함되어 있습니다.
- Hmisc에 함수가 포함되어 있습니다.
latex()
선택한 개체가 포함된 텍스트 파일을 만듭니다.은 꽤하고, 할 수 .longtable
라텍스 테이블도움말 파일에 많은 정보가 있습니다.?latex
- miscFuncs에는 영문자와 숫자가 혼합된 행렬 데이터를 LaTeX 테이블로 변환하여 콘솔에 인쇄하여 복사하여 LaTeX 문서에 붙여넣는 깔끔한 기능 'latextable'이 있습니다.
- texreg 패키지(JSS paper)는 통계 모델 출력을 LaTeX 테이블로 변환합니다.여러 모델을 병합합니다.네트워크 모델 및 다단계 모델(lme 및 lme4)을 포함하여 약 50개의 다양한 모델 유형을 처리할 수 있습니다.
- 보고서 도구 패키지(JSS paper)는 연속형, 범주형 및 날짜 변수에 대한 설명 통계를 위한 또 다른 옵션입니다.
- tables package는 아마도 기술 통계량을 위해 R에서 가장 일반적인 LaTeX 테이블 만들기 패키지일 것입니다.
- stargazer 패키지는 훌륭한 비교 통계 모델 요약 표를 만듭니다.
블로그 및 코드 조각
- 회귀 분석의 출력을 위해 라텍스에서 Stata와 같은 테이블을 제공하는 Paul Johnson의 아웃레그 함수가 있습니다.이건 아주 잘 작동합니다.
- 앞의 질문에서 주어진 것처럼, lme4 객체에 대한 memisc 패키지를 적용하기 위한 코드 스니펫이 있습니다.
관련 질문:
- R/LaTeX 테이블 생성 패키지 제안
- 보고서/LaTeX 품질 출력 패키지
- xtable로 라텍스 출력을 위해 테이블 정렬
- lme4mer 모델 핏 오브젝트에서 LaTeX 테이블을 생성할 수 있는 방법이 있습니까?
- xtable이 있는 라텍스 출력에 대해 지정된 제목이 쌓인 Rdata.frame
- 공식 언어를 사용하여 매우 유연하고 흥미로운 구문을 사용하여 R에서 라텍스로 테이블을 빠르게 추가하는 자동화
"브루" 패키지에 대한 언급을 추가하고 싶습니다.플레이스홀더를 사용하여 LaTeX가 되는 Brew 템플릿 파일을 작성한 다음 이를 "브루"하여 .tex 파일을 생성하여 \include 또는 \input을 LaTeX에 생성할 수 있습니다.다음과 같은 것:
\begin{tabular}{l l}
A & <%= fit$A %> \\
B & <%= fit$B %> \\
\end{tabular}
Brew 구문은 루프도 처리할 수 있으므로 데이터 프레임의 각 행에 대해 테이블 행을 작성할 수 있습니다.
Joris가 이 질문을 만들어 주셔서 감사합니다.바라건대, 그것이 커뮤니티 위키로 만들어지기를 바랍니다.
라텍스 소재의 북탭 패키지는 보기 좋은 테이블을 만듭니다.다음은 xtable을 사용하여 북탭을 사용하는 라텍스 테이블을 만드는 방법에 대한 블로그 게시물입니다.
나는 또한 추가할 것입니다.apsrtable
패키지를 혼합하여 보기 좋은 회귀 분석 테이블을 만듭니다.
다른 아이디어:이러한 패키지 중 일부(예: memisc 및 apsrable)를 사용하면 코드를 쉽게 확장하여 서로 다른 회귀 개체에 대한 테이블을 생성할 수 있습니다.그러한 예 중 하나가 질문에 표시된 lme4 memisc 코드입니다.이러한 코드 스니펫을 수집하기 위해 github 저장소를 시작하는 것이 타당할 수 있으며 시간이 지남에 따라 memisc 패키지에 추가할 수도 있습니다.응시자는?
스타게이저 패키지는 또 다른 좋은 옵션입니다.일반적으로 사용되는 많은 함수와 패키지(lm, glm, svyreg, survival, pscl, AER)와 zelig의 객체를 지원합니다.회귀 분석 표 외에도 데이터 프레임에 대한 요약 통계를 출력하거나 데이터 프레임의 내용을 직접 출력할 수도 있습니다.
저는 여기서 공유할 xtable과 Latex의 흥미로운 '기능'에 대한 몇 가지 요령과 방법을 알고 있습니다.
트릭 #1: 열에서 중복 제거 및 트릭 #2: 북 탭 사용
먼저 패키지를 로드하고 정리 기능을 정의합니다.
<<label=first, include=FALSE, echo=FALSE>>=
library(xtable)
library(plyr)
cleanf <- function(x){
oldx <- c(FALSE, x[-1]==x[-length(x)])
# is the value equal to the previous?
res <- x
res[oldx] <- NA
return(res)}
이제 가짜 데이터를 생성합니다.
data<-data.frame(animal=sample(c("elephant", "dog", "cat", "fish", "snake"), 100,replace=TRUE),
colour=sample(c("red", "blue", "green", "yellow"), 100,replace=TRUE),
size=rnorm(100,mean=500, sd=150),
age=rlnorm(100, meanlog=3, sdlog=0.5))
#generate a table
datatable<-ddply(data, .(animal, colour), function(df) {
return(data.frame(size=mean(df$size), age=mean(df$age)))
})
이제 테이블을 생성하고 정리 기능을 사용하여 레이블 열의 중복 항목을 제거할 수 있습니다.
cleandata<-datatable
cleandata$animal<-cleanf(cleandata$animal)
cleandata$colour<-cleanf(cleandata$colour)
@
이것은 일반 xtable입니다.
<<label=normal, results=tex, echo=FALSE>>=
print(
xtable(
datatable
),
tabular.environment='longtable',
latex.environments=c("center"),
floating=FALSE,
include.rownames=FALSE
)
@
사용자 정의 함수가 중복 항목을 NA로 변환한 일반 xtable입니다.
<<label=cleandata, results=tex, echo=FALSE>>=
print(
xtable(
cleandata
),
tabular.environment='longtable',
latex.environments=c("center"),
floating=FALSE,
include.rownames=FALSE
)
@
이 테이블은 booktab 패키지를 사용합니다(헤더에 \usepackage{booktabs} 필요).
\begin{table}[!h]
\centering
\caption{table using booktabs.}
\label{tab:mytable}
<<label=booktabs, echo=F,results=tex>>=
mat <- xtable(cleandata,digits=rep(2,ncol(cleandata)+1))
foo<-0:(length(mat$animal))
bar<-foo[!is.na(mat$animal)]
print(mat,
sanitize.text.function = function(x){x},
floating=FALSE,
include.rownames=FALSE,
hline.after=NULL,
add.to.row=list(pos=list(-1,bar,nrow(mat)),
command=c("\\toprule ", "\\midrule ", "\\bottomrule ")))
#could extend this with \cmidrule to have a partial line over
#a sub category column and \addlinespace to add space before a total row
@
패키지 taRifx의 두 유틸리티를 함께 사용하여 중첩된 계층 구조의 다중 행 테이블을 생성할 수 있습니다.
library(datasets)
library(taRifx)
library(xtable)
test.by <- bytable(ChickWeight$weight, list( ChickWeight$Chick, ChickWeight$Diet) )
colnames(test.by) <- c('Diet','Chick','Mean Weight')
print(latex.table.by(test.by), include.rownames = FALSE, include.colnames = TRUE, sanitize.text.function = force)
# then add \usepackage{multirow} to the preamble of your LaTeX document
# for longtable support, add ,tabular.environment='longtable' to the print command (plus add in ,floating=FALSE), then \usepackage{longtable} to the LaTeX preamble
및 Trick #3 Xtable의 여러 줄 항목
추가 데이터 생성
moredata<-data.frame(Nominal=c(1:5), n=rep(5,5),
MeanLinBias=signif(rnorm(5, mean=0, sd=10), digits=4),
LinCI=paste("(",signif(rnorm(5,mean=-2, sd=5), digits=4),
", ", signif(rnorm(5, mean=2, sd=5), digits=4),")",sep=""),
MeanQuadBias=signif(rnorm(5, mean=0, sd=10), digits=4),
QuadCI=paste("(",signif(rnorm(5,mean=-2, sd=5), digits=4),
", ", signif(rnorm(5, mean=2, sd=5), digits=4),")",sep=""))
names(moredata)<-c("Nominal", "n","Linear Model \nBias","Linear \nCI", "Quadratic Model \nBias", "Quadratic \nCI")
이제 sanitize 기능을 사용하여 열 이름을 올바른 Latex newline 명령(더블 백슬래시를 포함하여 R이 만족함)으로 대체하는 xtable을 생성합니다.
<<label=multilinetable, results=tex, echo=FALSE>>=
foo<-xtable(moredata)
align(foo) <- c( rep('c',3),'p{1.8in}','p{2in}','p{1.8in}','p{2in}' )
print(foo,
floating=FALSE,
include.rownames=FALSE,
sanitize.text.function = function(str) {
str<-gsub("\n","\\\\", str, fixed=TRUE)
return(str)
},
sanitize.colnames.function = function(str) {
str<-c("Nominal", "n","\\centering Linear Model\\\\ \\% Bias","\\centering Linear \\\\ 95\\%CI", "\\centering Quadratic Model\\\\ \\%Bias", "\\centering Quadratic \\\\ 95\\%CI \\tabularnewline")
return(str)
})
@
(비록 이것이 완벽하지는 않지만 \tabular new line이 필요하기 때문에 테이블이 올바르게 포맷되고 Xtable은 여전히 마지막 \를 삽입하므로 테이블 헤더 아래에 빈 줄이 생깁니다.)
R 패키지 마이크에서 라텍스테이블 기능을 사용할 수도 있습니다.펑스:
http://cran.r-project.org/web/packages/miscFuncs/index.html
latexttable(M) 여기서 M은 영문자와 숫자 항목이 혼합된 행렬이며 기본 LaTeX 테이블을 화면에 출력합니다. 이 테이블은 복사하여 LaTeX 문서에 붙여넣을 수 있습니다.숫자가 작은 경우에는 인덱스 표기법(예: 1.2x10^{-3})으로 대체하기도 합니다.
여러 회귀 모형을 LaTeX 표로 집계하기 위한 또 다른 R 패키지는 texreg입니다.
언급URL : https://stackoverflow.com/questions/5465314/tools-for-making-latex-tables-in-r
'programing' 카테고리의 다른 글
Git index.lock File은 커밋하려고 할 때 존재하지만 파일을 삭제할 수 없습니다. (0) | 2023.06.21 |
---|---|
인증에 필요한 Spring-boot 보안을 통과하는 방법 (0) | 2023.06.21 |
git 특정 분기로 푸시 (0) | 2023.06.21 |
ORA-02049 문제 해결 및 Oracle 일반 잠금 문제 해결 방법 (0) | 2023.06.21 |
read.csv 주의 '따옴표로 묶인 문자열 내의 EOF'가 파일을 완전히 읽지 못하도록 합니다. (0) | 2023.06.21 |