siunitx:在 S 列中将平均值和标准差输出为“M(SD)”的正确方法是什么?

siunitx:在 S 列中将平均值和标准差输出为“M(SD)”的正确方法是什么?

我正在尝试使用siunitx在心理学结果表中排列小数,表格如下所示:

\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}

这并不遵循所siunitx使用的简短形式的不确定性,而是给出完整的标准差值(如心理学中通常的那样)。

我的问题是,如何在代码中提供实际标准偏差值(例如 .11)的同时siunitx输出格式?我不能使用短不确定性格式,因为输入来自 R 代码(使用 knitr),它返回实际标准偏差值,例如。M (SD)SDsiunitx\Sexpr{sd(some.numbers)}

编辑:我已经尝试过separate-uncertainty,但这似乎强制输出M ± SD,我想使用M (SD)

答案1

解析的格式siunitx1.23(4)1.23 \pm 0.04,而不是其他格式。因此,为了达到预期的效果,必须单独进行一些解析。一种方法是抓取单元格内容,更改格式,然后使用命令\tablenum进行对齐

\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}

相关内容