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使用的簡短形式的不確定性,而是給出了完整的標準差值(如心理學中常見的那樣)。

我的問題是如何在程式碼中提供實際標準差值(例如 0.11)的同時將siunitx輸出轉換為格式?我無法使用 的短不確定性格式,因為輸入來自 R 代碼(使用 knit),它會傳回實際標準差值,例如。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}

相關內容