[Tex/LaTex] dcolumn won’t align negative numbers and positive numbers

dcolumnhorizontal alignmenttables

I am using R to analyze data and have used the xtable package within R to produce a TeX output for a correlation matrix. I have also implemented the dcolumn package within TeX so that I would be able to align my data by decimal points. My data have both positive and negative numbers. It seems the output produced is aligned somewhat correctly. The positive numbers are aligned by the decimal point to other positive numbers and negative numbers are also aligned to other negative numbers. I believe the issue is related to the inclusion of an additional non-numerical character (the negative sign) for the negative numbers such that the string is bigger than that of positive numbers. Can anyone help me correct this issue?

My code follows:

% latex table generated in R 2.14.1 by xtable 1.7-0 package
% Tue Mar 20 13:44:16 2012
\documentclass{article}
\usepackage{dcolumn}
\newcolumntype{d}{D{.}{.}{2.2}}
\newcolumntype{s}{D{.}{.}{1.2}}
\usepackage{color}
\usepackage{underscore}
\usepackage{rotating}
\usepackage{caption}
\usepackage{dcolumn}
\usepackage{siunitx}
\begin{document}
\begin{sidewaystable}[ht]
\caption*{Correlation Matrix}
\begin{center}
\scalebox{0.4}{
\begin{tabular}{|rr*{39}{d}|}   
\hline
   &     &   1   &   2   &   3   &   4   &   5   &   6   &   7   &   8   &   9   &   10       &   11   &   12   &   13   &   14   &   15   &   16   &  17   &   18   &   19   &   20   &       21   &   22   &   23   &   24   &   25   &   26   &   27   &   28   &   29   &   30   &       31   &   32   &   33   &   34   &   35   &   36   &   37   &   38   &   39   \\ \hline


\multicolumn{1}{|r|}{1}   &  \multicolumn{1}{r|}{ APCcom }  &   \\
&  \multicolumn{1}    {c}{ \textcolor{red}{ 0.01 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.09 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.10 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c|}{ \textcolor{black}{ 1.00 } }  \\  

\multicolumn{1}{|r|}{2}   &  \multicolumn{1}{r|}{ APCemp }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.33 } }  &   \\
&  \multicolumn{1}{c}{ \textcolor{red}{ 0.01 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.18 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.73 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.01 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.14 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c|}{ \textcolor{black}{ 1.00 } }  \\  

\multicolumn{1}{|r|}{3}   &  \multicolumn{1}{r|}{ APCrule }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.20 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.33 } }  &   \\
&  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.81 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.23 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c|}{ \textcolor{black}{ 1.00 } }  \\  

\multicolumn{1}{|r|}{4}   &  \multicolumn{1}{r|}{ ATFtot }  &  \multicolumn{1}{c}{ \textcolor{black}{ -0.03 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.27 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.17 } }  &   \\
&  \multicolumn{1}{c}{ \textcolor{red}{ 0.01 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.01 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.40 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.40 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.01 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.09 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c|}{ \textcolor{black}{ 1.00 } }  \\  

\multicolumn{1}{|r|}{5}   &  \multicolumn{1}{r|}{ flstot }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.37 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.24 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.02 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ -0.32 } }  &   \\
&  \multicolumn{1}{c}{ \textcolor{black}{ 0.10 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.10 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.08 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.05 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 0.21 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.02 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{red}{ 0.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c}{ \textcolor{black}{ 1.00 } }  &  \multicolumn{1}{c|}{ \textcolor{black}{ 1.00 } }  \\  

% ... table shortened for space considerations
\hline
\end{tabular}
}
\caption*{r-values below the diagonal, p-values above, \\
significant r-values and p-values appear in \textcolor{red}{red}}
\label{Matrix}
\end{center}
\end{sidewaystable}
\end{document}

Best Answer

You should better use the facilities of siunitx: here's a minimal example

\begin{tabular}{|r|l|SS|}
\hline
\multicolumn{2}{|c}{}   &   1  & 2 \\
\hline
1 & APCcom  &                  & \color{red} 0.01 \\
2 & APCemp  & \color{red} 0.33 &                  \\
3 & APCrule & \color{red} 0.20 & \color{red} 0.33 \\
4 & ATFtot  &            -0.03 & \color{red} 0.27 \\
\hline
\end{tabular}

on which you can build up. enter image description here

Declaring d columns and then overriding them with \multicolumn{1}{c}{...} is the main cause of your problem.

Related Question