为什么stargazer以数学模式输出此表

为什么stargazer以数学模式输出此表,r,stargazer,R,Stargazer,我有一个data.frame,我正试图使用stargazer将其转换为latex代码: habitats_df <- data.frame(habitat = c("beach", "grassland", "freshwater"), v1 = c(0.000, 0.670, 0.032), v2 = c(0.005, 0.824, 0.012)) library(stargazer) stargazer(habitats_df, summary = F) % Table cr

我有一个data.frame,我正试图使用stargazer将其转换为latex代码:

habitats_df <- data.frame(habitat = c("beach", "grassland", "freshwater"), v1 = c(0.000, 0.670, 0.032), v2 = c(0.005, 0.824, 0.012))


 library(stargazer)
stargazer(habitats_df, summary = F)

 % Table created by stargazer v.4.5.3 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
    % Date and time: Wed, Jan 22, 2014 - 11:11:44
    \begin{table}[!htbp] \centering 
      \caption{} 
      \label{} 
    \begin{tabular}{@{\extracolsep{5pt}} ccc} 
    \\[-1.8ex]\hline 
    \hline \\[-1.8ex] 
    habitat & v1 & v2 \\ 
    \hline \\[-1.8ex] 
    beach & $0$ & $0.005$ \\ 
    grassland & $0.670$ & $0.824$ \\ 
    freshwater & $0.032$ & $0.012$ \\ 
    \hline \\[-1.8ex] 
    \normalsize 
    \end{tabular} 
    \end{table} 

df将您不希望作为数字的任何数字列转换为字符:

habitats_df$v1 <- as.character(habitats_df$v1)
> stargazer(habitats_df, summary = F)

% Table created by stargazer v.4.5.3 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
% Date and time: Wed, Jan 22, 2014 - 11:23:59
\begin{table}[!htbp] \centering 
  \caption{} 
  \label{} 
\begin{tabular}{@{\extracolsep{5pt}} ccc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
habitat & v1 & v2 \\ 
\hline \\[-1.8ex] 
beach & 0 & $0.005$ \\ 
grassland & 0.67 & $0.824$ \\ 
freshwater & 0.032 & $0.012$ \\ 
\hline \\[-1.8ex] 
\normalsize 
\end{tabular} 
\end{table} 
hobitates\u df$v1星探(hobitates\u df,summary=F)
%表由哈佛大学Marek Hlavac的stargazer v.4.5.3创建。电子邮件:hlavac在fas.harvard.edu
%日期和时间:2014年1月22日星期三-11:23:59
\开始{table}[!htbp]\
\标题{}
\标签{}
\开始{tabular}{@{\extracolsep{5pt}}ccc}
\\[-1.8ex]\hline
\hline\\[-1.8ex]
栖息地&v1&v2\\
\hline\\[-1.8ex]
海滩&0和$0.005$\\
草地0.67美元和0.824美元
淡水&0.032美元和0.012美元
\hline\\[-1.8ex]
\正常尺寸
\结束{表格}
\结束{table}

至于“为什么”,是因为其他方面的数字排版不正确。如果数值为负值,则数学模式将使用较长的破折号,并允许LaTeX控制打印的位数。否则,正如您在上面看到的,如果您想要控制数字的数量,您必须使用R中的
sprintf

Hmisc::latexSN很好地完成了这项工作

habitats_df$v1 <- latexSN(habitats_df$v1)
habitats_df$v2 <- latexSN(habitats_df$v2)

library(stargazer)
stargazer(habitats_df, summary = F)

% Table created by stargazer v.4.5.3 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
% Date and time: Fri, Jan 24, 2014 - 08:32:39
\begin{table}[!htbp] \centering 
  \caption{} 
  \label{} 
\begin{tabular}{@{\extracolsep{5pt}} ccc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
habitat & v1 & v2 \\ 
\hline \\[-1.8ex] 
beach & 0.000 & 0.005 \\ 
grassland & 0.670 & 0.824 \\ 
freshwater & 0.032 & 0.012 \\ 
\hline \\[-1.8ex] 
\normalsize 
\end{tabular} 
\end{table}
v1