siunitx: ¿Cuál es la forma correcta de generar la media y la desviación estándar como "M (SD)" en una columna S?

siunitx: ¿Cuál es la forma correcta de generar la media y la desviación estándar como "M (SD)" en una columna S?

estoy tratando de usarsiunitxen una tabla de resultados de psicología para alinear decimales, y la tabla se ve así:

\documentclass[]{article}
\begin{document}
\begin{table}[h]
    \begin{tabular}{@{}cc@{}}
    \multicolumn{2}{c}{Mean (SD)} \\
    \hline
    A & B \\
    \hline
    .45 (.23) & .78 (.11) \\ 
    \end{tabular}
\end{table}
\end{document}

Esto no sigue la incertidumbre abreviada que siunitxse utiliza, sino que proporciona el valor de desviación estándar completo (como es habitual en psicología).

Mi pregunta es ¿cómo puedo generar siunitxresultados en el formato M (SD)y al mismo tiempo proporcionar SDun valor de desviación estándar real en el código (como .11)? No puedo usar el formato de incertidumbre corta siunitxporque la entrada proviene del código R (usando knitr) que devuelve el valor de desviación estándar real, por ejemplo \Sexpr{sd(some.numbers)}.

Editar: lo he intentado separate-uncertaintypero esto parece forzar una salida de M ± SDy me gustaría usar M (SD).

Respuesta1

Los formatos analizados por siunitxson 1.23(4)y 1.23 \pm 0.04y ningún otro. Por lo tanto, para lograr el efecto deseado es necesario realizar algunos análisis por separado. Un enfoque es tomar el contenido de la celda, alterar el formato y usar el \tablenumcomando para realizar la alineación.

\documentclass[]{article}
\usepackage{siunitx}
\def\converter\ignorespaces#1(#2){%
  \begingroup\tablenum[table-format = 1.2]{#1}\endgroup\space
  (\tablenum[table-format = 1.2]{#2})}
\newcolumntype{R}{>{\converter}c}
\begin{document}
\begin{table}[h]
    \begin{tabular}{@{}RR@{}}
    \multicolumn{2}{@{}c@{}}{Mean/SD} \\
    .45 (.23) & .78 (.11) \\
    0.2(.4) \\ 
    \end{tabular}
\end{table}
\end{document}

información relacionada