2016-10-08 2 views
3

라텍스에서 표를 생성하기 위해 R 패키지 실속자를 사용하고 있습니다. 그것은 위대한 작품이지만 정확하게 내 숫자 형식을 알아낼 수 없습니다. 나는 모든 숫자가 정확하게 하나의 소수점 이하 자릿수 (예 : 1.0, 0.1, 10.5 등)를 보여주기를 바랍니다. 따라서 옵션 숫자 = 1을 사용합니다. 그러나 1과 같은 정확한 숫자는 1.0 대신 1.0을 사용합니다. 어떻게 정확한 숫자라도 소수점을 구할 수 있습니까? (1.0 대신에 1.0)?실무실의 십진수

답변

2

실습을 사용한 후에 regex를 사용하여 소수점을 다시 추가 할 수 있습니다. 다음은 그 예입니다. stargazer로 생성하는 요약 유형에 따라 정규 표현식 문자열을 약간 변경해야 할 수도 있지만 최소한의 예제가 포함되어 있지 않으므로이 방법의 일반적인 예제를 제공하면됩니다.

star = stargazer(attitude, digits=1, digits.extra=1) 
star = gsub("& ([0-9]+) ", "& \\1\\.0 ", star) 

cat(star, sep = "\n") 

# % Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu 
# % Date and time: Sat, Oct 08, 2016 - 8:11:26 PM 
# \begin{table}[!htbp] \centering 
# \caption{} 
# \label{} 
# \begin{tabular}{@{\extracolsep{5pt}}lccccc} 
# \\[-1.8ex]\hline 
# \hline \\[-1.8ex] 
# Statistic & \multicolumn{1}{c}{N} & \multicolumn{1}{c}{Mean} & \multicolumn{1}{c}{St. Dev.} & \multicolumn{1}{c}{Min} & \multicolumn{1}{c}{Max} \\ 
# \hline \\[-1.8ex] 
# rating & 30.0 & 64.6 & 12.2 & 40.0 & 85.0 \\ 
# complaints & 30.0 & 66.6 & 13.3 & 37.0 & 90.0 \\ 
# privileges & 30.0 & 53.1 & 12.2 & 30.0 & 83.0 \\ 
# learning & 30.0 & 56.4 & 11.7 & 34.0 & 75.0 \\ 
# raises & 30.0 & 64.6 & 10.4 & 43.0 & 88.0 \\ 
# critical & 30.0 & 74.8 & 9.9 & 49.0 & 92.0 \\ 
# advance & 30.0 & 42.9 & 10.3 & 25.0 & 72.0 \\ 
# \hline \\[-1.8ex] 
# \end{tabular} 
# \end{table} 

이 예제에서 "& ([0-9] +)"패턴은 "&"다음에 숫자 문자열과 그 뒤에 공백을 찾습니다. 그런 다음 발견 된 숫자 (// 1), 마침표 (// 마침표는 정규식의 특수 문자이기 때문에 마침표로 이스케이프되어야하므로 //), 십진수 0 및 공백으로 구분 된 숫자 그룹 인 "&"으로 바꿉니다 .

실마리가 작성한 몇 가지 요약 형식에는 공백 이외의 문자 (예 : 쉼표)가 뒤에 오는 숫자와 같이 검색 문자열에 포함해야하는 다른 내용이있을 수 있습니다. 또는 앞에 &이없는 숫자는 경우에 따라 교체해야 할 수도 있습니다.

어떤 경우 든 일반적인 접근 방식은 동일합니다.

+0

다행이 도움이되었습니다. Btw, 내게있어 당신이 이후의 일은 실무자의 기본 행동 (또는 최소한 내장 옵션)이어야합니다. 패키지 관리자에게 기능 요청을 요청하는 방법도 있습니다. – dww

+0

이 방법을 사용하면 반올림이 잘못됩니다 (예 : 0.49는 0.4가된다. – Antti

+0

@Antti - 예상대로 작동하지 않습니다. 정규식은 반올림하지 않습니다. 그것은 이미 실무가에 의해 수행되었습니다. 모든 정규 표현식은 모범 사례가 인쇄 된 경우입니다. '10.0'을'10'으로 설정하면 소수점 자리를 다시 적어 10.0을 출력합니다. Stargazer는 0.49를 상향 조정해야합니다. – dww