Добавление \ mathcal к фрейму данных - PullRequest
0 голосов
/ 21 февраля 2019

Я использую пакет папайи, чтобы сделать воспроизводимую рукопись, используя R и Rmarkdown.Одна вещь, которую я хотел бы сделать для своих таблиц - это использовать символы с использованием математического режима.Например, я пытаюсь создать столбец переменных, которые являются сравнениями двух z \ mathcalc {M} symbols (e.g., $ \ mathcal {M} _1 - \ mathcal {M} _2 $ `, который выглядит так в Rmarkdown:

enter image description here

Однако, когда я пытаюсь использовать эти символы в качестве ячеек внутри фрейма данных. R выдает предупреждение:

table1 <- c("$\mathcal{M}_1 - \mathcal{M}_3$",
            "$\mathcal{M}_1 - \mathcal{M}_3$",
            "$\mathcal{M}_1 - \mathcal{M}_4$",
            "$\mathcal{M}_1 - \mathcal{M}_5$",
            "$\mathcal{M}_2 - \mathcal{M}_3$",
            "$\mathcal{M}_2 - \mathcal{M}_4$",
            "$\mathcal{M}_2 - \mathcal{M}_5$",
            "$\mathcal{M}_3 - \mathcal{M}_4$",
            "$\mathcal{M}_3 - \mathcal{M}_5$",
            "$\mathcal{M}_4 - \mathcal{M}_5$")
table2 <- c(49.273540, 198.383423, 198.956909, 198.846716, 198.933951, 198.200322, 197.778849,  11.361870,  14.627681,   7.231055)
table <- data.frame(table1,table2)

Error: '\m' is an unrecognized escape in character string starting ""$\m"

Из того, что я нашел в другом месте об использовании математического режима в R, одно решение состоит в том, чтобы использовать две косые черты, которые будут выглядеть следующим образом:

table1 <- c("$\\mathcal{M}_1 - \\mathcal{M}_3$",
            "$\\mathcal{M}_1 - \\mathcal{M}_3$",
            "$\\mathcal{M}_1 - \\mathcal{M}_4$",
            "$\\mathcal{M}_1 - \\mathcal{M}_5$",
            "$\\mathcal{M}_2 - \\mathcal{M}_3$",
            "$\\mathcal{M}_2 - \\mathcal{M}_4$",
            "$\\mathcal{M}_2 - \\mathcal{M}_5$",
            "$\\mathcal{M}_3 - \\mathcal{M}_4$",
            "$\\mathcal{M}_3 - \\mathcal{M}_5$",
            "$\\mathcal{M}_4 - \\mathcal{M}_5$")
table2 <- c(49.273540, 198.383423, 198.956909, 198.846716, 198.933951, 198.200322, 197.778849,  11.361870,  14.627681,   7.231055)
table <- data.frame(table1,table2)

Пока все хорошо.Нет сообщений об ошибках.Однако, когда я пытаюсь отформатировать это с пакетом papaja в латексную таблицу, используя функцию apa_table, я получаю это:

> apa_table(table)


\begin{table}[tbp]
\begin{center}
\begin{threeparttable}
\begin{tabular}{ll}
\toprule
table1 & \multicolumn{1}{c}{table2}\\
\midrule
\$\textbackslash{}mathcal\{M\}\_1 - \textbackslash{}mathcal\{M\}\_3\$ & 49.27\\
\$\textbackslash{}mathcal\{M\}\_1 - \textbackslash{}mathcal\{M\}\_3\$ & 198.38\\
\$\textbackslash{}mathcal\{M\}\_1 - \textbackslash{}mathcal\{M\}\_4\$ & 198.96\\
\$\textbackslash{}mathcal\{M\}\_1 - \textbackslash{}mathcal\{M\}\_5\$ & 198.85\\
\$\textbackslash{}mathcal\{M\}\_2 - \textbackslash{}mathcal\{M\}\_3\$ & 198.93\\
\$\textbackslash{}mathcal\{M\}\_2 - \textbackslash{}mathcal\{M\}\_4\$ & 198.20\\
\$\textbackslash{}mathcal\{M\}\_2 - \textbackslash{}mathcal\{M\}\_5\$ & 197.78\\
\$\textbackslash{}mathcal\{M\}\_3 - \textbackslash{}mathcal\{M\}\_4\$ & 11.36\\
\$\textbackslash{}mathcal\{M\}\_3 - \textbackslash{}mathcal\{M\}\_5\$ & 14.63\\
\$\textbackslash{}mathcal\{M\}\_4 - \textbackslash{}mathcal\{M\}\_5\$ & 7.23\\
\bottomrule
\end{tabular}
\end{threeparttable}
\end{center}
\end{table}

, которая не производит желаемую таблицу:

enter image description here

Итак, в общем, как я могу просто ввести $\mathcal{M}_1 - \mathcal{M}_2$ в мою таблицу, кроме просто вставки этого вручную?Я должен делать это часто, поэтому я бы хотел более простой способ присвоения значений.

1 Ответ

0 голосов
/ 21 февраля 2019

apa_table ускользает от ваших строк, чтобы буквально транскрибироваться в LaTeX.Это обычно , что вы хотите, но в вашем случае вы можете передать escape = FALSE в apa_table.

К сожалению, параметр по умолчанию для этого аргумента не согласуется между различными методами S3 этой обобщенной функции,Это, вероятно, ошибка.

...