R如何将mathml转换为r方程
R how to convert mathml to an r equation
我有一个方程式的 mathml 版本(下面,从 pdf 复制)我想在 R 中使用。我试过 XML 和 xml2 包,但它们似乎没有一个函数来做到这一点。最终函数如下所示
HI <- -42 + 2.04 * RH + .22 * T^2 ...
这是 mathml 版本。
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mtable columnalign="left" rowspacing="4pt" columnspacing="1em">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">H</mi>
<mi mathvariant="normal">I</mi>
</mrow>
</mrow>
<mo>=</mo>
<mo>−<!-- − --></mo>
<mn>42.379</mn>
<mo>+</mo>
<mn>2.04901523</mn>
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
</mrow>
<mo>−<!-- − --></mo>
<mn>10.14333127</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mspace width="thinmathspace" />
<mspace width="-65pt" />
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
</mrow>
<mo>−<!-- − --></mo>
<mn>0.22475541</mn>
<mo>×<!-- × --></mo>
<mi>T</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mspace width="thinmathspace" />
<mspace width="30pt" />
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
</mrow>
<mo>−<!-- − --></mo>
<mn>0.00683783</mn>
<mo>×<!-- × --></mo>
<msup>
<mi>T</mi>
<mn>2</mn>
</msup>
<mo>−<!-- − --></mo>
<mn>0.05481717</mn>
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mspace width="thinmathspace" />
<mspace width="20pt" />
<mo>+</mo>
<mn>0.00122874</mn>
<mo>×<!-- × --></mo>
<msup>
<mi>T</mi>
<mn>2</mn>
</msup>
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
</mrow>
<mo>+</mo>
<mn>0.00085282</mn>
<mo>×<!-- × --></mo>
<mi>T</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mspace width="thinmathspace" />
<mspace width="-25pt" />
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mrow>
<mo>−<!-- − --></mo>
<mn>0.00000199</mn>
<mo>×<!-- × --></mo>
<msup>
<mi>T</mi>
<mn>2</mn>
</msup>
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mrow>
</mtd>
</mtr>
</mtable>
</math>
我的解决方案并不优雅,只是部分解决方案如下
将数学代码写入文本文件。我叫它 mathml.txt
.
运行以下代码
库(xml2)
xmlin <- read_xml(x = "mathml.txt")
write_html(xmlin, "test.html")
这将创建一个 html 文件,其中包含方程式。至少,您可以将其复制并粘贴到文本编辑器中以创建 R 方程。
我有一个方程式的 mathml 版本(下面,从 pdf 复制)我想在 R 中使用。我试过 XML 和 xml2 包,但它们似乎没有一个函数来做到这一点。最终函数如下所示
HI <- -42 + 2.04 * RH + .22 * T^2 ...
这是 mathml 版本。
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block">
<mtable columnalign="left" rowspacing="4pt" columnspacing="1em">
<mtr>
<mtd>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">H</mi>
<mi mathvariant="normal">I</mi>
</mrow>
</mrow>
<mo>=</mo>
<mo>−<!-- − --></mo>
<mn>42.379</mn>
<mo>+</mo>
<mn>2.04901523</mn>
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
</mrow>
<mo>−<!-- − --></mo>
<mn>10.14333127</mn>
</mtd>
</mtr>
<mtr>
<mtd>
<mspace width="thinmathspace" />
<mspace width="-65pt" />
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
</mrow>
<mo>−<!-- − --></mo>
<mn>0.22475541</mn>
<mo>×<!-- × --></mo>
<mi>T</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mspace width="thinmathspace" />
<mspace width="30pt" />
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
</mrow>
<mo>−<!-- − --></mo>
<mn>0.00683783</mn>
<mo>×<!-- × --></mo>
<msup>
<mi>T</mi>
<mn>2</mn>
</msup>
<mo>−<!-- − --></mo>
<mn>0.05481717</mn>
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mrow>
</mtd>
</mtr>
<mtr>
<mtd>
<mspace width="thinmathspace" />
<mspace width="20pt" />
<mo>+</mo>
<mn>0.00122874</mn>
<mo>×<!-- × --></mo>
<msup>
<mi>T</mi>
<mn>2</mn>
</msup>
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
</mrow>
<mo>+</mo>
<mn>0.00085282</mn>
<mo>×<!-- × --></mo>
<mi>T</mi>
</mtd>
</mtr>
<mtr>
<mtd>
<mspace width="thinmathspace" />
<mspace width="-25pt" />
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mrow>
<mo>−<!-- − --></mo>
<mn>0.00000199</mn>
<mo>×<!-- × --></mo>
<msup>
<mi>T</mi>
<mn>2</mn>
</msup>
<mo>×<!-- × --></mo>
<mrow class="MJX-TeXAtom-ORD">
<msup>
<mrow class="MJX-TeXAtom-ORD">
<mi mathvariant="normal">R</mi>
<mi mathvariant="normal">H</mi>
</mrow>
<mrow class="MJX-TeXAtom-ORD">
<mn>2</mn>
</mrow>
</msup>
</mrow>
</mtd>
</mtr>
</mtable>
</math>
我的解决方案并不优雅,只是部分解决方案如下
将数学代码写入文本文件。我叫它
mathml.txt
.运行以下代码
库(xml2) xmlin <- read_xml(x = "mathml.txt") write_html(xmlin, "test.html") 这将创建一个 html 文件,其中包含方程式。至少,您可以将其复制并粘贴到文本编辑器中以创建 R 方程。