2013-04-16 3 views
2

Ниже приведен пример данных:

# create table data 
year <- c("2010", "2011", "2012") 
value <- ("5", "10", "15") 
df<-data.frame(year, value) 

# print 
print(xtable(df,digits=c(0,0,1))) 

Как можно форматировать 5, 10 и 15 для отображения в виде $ 5,0, $ 10,0 и $ 15,0?

Возможные пакеты R для оказания помощи: xtable, stargazer и/или Hmisc.

В xtable, решение может быть найдено в format.args: «Список аргументов для функции formatC Например, стандартные разделители немецких могут быть определены как format.args=list(big.mark = "’", decimal.mark = ","))..» - http://cran.r-project.org/web/packages/xtable/xtable.pdf

Спасибо

ответ

2

Это проще форматировать df$value с форматом доллара перед использованием функции xtable(). Используя ваш пример вы следующее (требуется scales библиотека):

library(xtable) 
library(scales) 

# create table data 
year <- c("2010", "2011", "2012") 
value <- c("5", "10", "15") 
df<-data.frame(year, value) 

df$value <- dollar(as.numeric(as.character(df$value))) 

# print 
print(xtable(df)) 

Это производит следующий LaTeX код:

% latex table generated in R 2.12.2 by xtable 1.6-0 package 
% Fri May 03 10:46:58 2013 
\begin{table}[ht] 
\begin{center} 
\begin{tabular}{rll} 
    \hline 
& year & value \\ 
    \hline 
1 & 2010 & \$5.00 \\ 
    2 & 2011 & \$10.00 \\ 
    3 & 2012 & \$15.00 \\ 
    \hline 
\end{tabular} 
\end{center} 
\end{table} 
Смежные вопросы