gpt4 book ai didi

r -\Sexpr[results=rd]{} 在 Rd 中究竟是什么意思?

转载 作者:行者123 更新时间:2023-12-01 02:42:37 26 4
gpt4 key购买 nike

我花了几个小时在 R-exts 手册和文档上parse_Rd() (以及引用文献中的 PDF 文档),但我
还没搞清楚是什么results=rd手段或如何使用它。我以为我可以
使用 R 代码片段动态创建 Rd 片段。这是
一个例子,我期望输出是一个描述列表<DL>在 HTML 中,但事实证明并非如此。

des <- "\\describe{\\item{def}{ghi}}"
con <- textConnection(c("\\title{abc}\\name{abc}",
"\\details{\\Sexpr[results=rd,stage=build]{des}}"))
z <- parse_Rd(con)
Rd2HTML(z, stages = "build")
close(con)

R 2.13.2下的输出:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><title>R: abc</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="R.css">
</head><body>
<table width="100%" summary="page for abc"><tr><td>abc</td><td
align="right">R Documentation</td></tr></table>
<h2>abc</h2>
<h3>Details</h3>
<p>defghi</p>
</body></html>

我实际上是在用 Rd 构建一个包,其中包含 \Sexpr{}而不是真正使用 Rd2HTML() ;内容未在之后呈现
我运行 R CMD 构建。

有没有人试过用 \Sexpr{} 动态生成 Rd 片段? ?谢谢!

答案摘要
  • 一些人已经确认这在 R 2.13.1 下有效,但不是更高版本(2.13.2 或更高版本)
  • 最佳答案

    你的例子对我有用:

    > sessionInfo()
    R version 2.13.1 Patched (2011-07-08 r56332)
    Platform: x86_64-unknown-linux-gnu (64-bit)

    locale:
    [1] LC_CTYPE=en_GB.UTF-8 LC_NUMERIC=C
    [3] LC_TIME=en_GB.UTF-8 LC_COLLATE=en_GB.UTF-8
    [5] LC_MONETARY=C LC_MESSAGES=en_GB.UTF-8
    [7] LC_PAPER=en_GB.UTF-8 LC_NAME=C
    [9] LC_ADDRESS=C LC_TELEPHONE=C
    [11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C

    attached base packages:
    [1] tools stats graphics grDevices utils datasets methods
    [8] base

    我得到:
    > Rd2HTML(z, stages = "build")
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><head><title>R: abc</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="R.css">
    </head><body>

    <table width="100%" summary="page for abc"><tr><td>abc</td><td align="right">R Documentation</td></tr></table>

    <h2>abc</h2>

    <h3>Details</h3>

    <p><dl>
    <dt>def</dt><dd>ghi</dd></dl>
    </p>


    </body></html>

    我想我现在在经历了一些排列之后更好地理解了这一点。

    这个
    \name{foo}
    \alias{foo}
    \title{foo bar}
    \description{
    blah blah blah
    }
    \details{
    \Sexpr[results=rd, stage=render]{"\\\\describe{\\\\item{def}{ghi}}"}

    \Sexpr[results=rd, stage=render]{(des <- "\\\\describe{\\\\item{def}{ghi}}")}

    \Sexpr[results=rd, stage=render]{tools:::Rd_expr_PR(1234)}
    }

    有效,例如通过以下方式处理时:
    R CMD Rd2pdf foo.Rd

    当我直接在文件中写这个时,我不得不逃避转义 \另外,否则我在处理 Rd 文件时会出错。

    我用过 stage=render因为在这些演示中,因为我没有构建包(但正如我所说,您的示例对我有用)。

    这在解析和呈现为 HTML 时也能正常工作:
    > foo <- parse_Rd("foo.Rd")
    > Rd2HTML(foo)
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html><head><title>R: foo bar</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <link rel="stylesheet" type="text/css" href="R.css">
    </head><body>

    <table width="100%" summary="page for foo"><tr><td>foo</td><td align="right">R Documentation</td></tr></table>

    <h2>foo bar</h2>

    <h3>Description</h3>

    <p>
    blah blah blah
    </p>


    <h3>Details</h3>

    <p>

    </p>
    <p>
    <dl>
    <dt>def</dt><dd>ghi</dd></dl>

    </p>
    <p>
    <a href="https://bugs.R-project.org/bugzilla3/show_bug.cgi?id=1234">PR#1234</a>
    </p>


    </body></html>

    一个稍长的例子,展示了可以使用它的几种方式,在一个主题上使用三种变体:
  • 手工生成一个字符向量]
  • 生成字符向量并安排打印 (....)
  • 生成一个字符向量 \Sexpr语句,不产生输出,但通过第二个 \Sexpr 打印此向量陈述。

  • 这是现在文件的内容:
    \name{foo}
    \alias{foo}
    \title{foo bar}
    \description{
    blah blah blah
    }
    \details{
    \Sexpr[results=rd, stage=render]{"\\\\describe{\\\\item{abc}{ghi}}"}

    \Sexpr[results=rd, stage=render]{(des <- "\\\\describe{\\\\item{def}{ghi}}")}

    \Sexpr[results=hide, stage=render]{des2 <- "\\\\describe{\\\\item{xyz}{ghi}}"}
    \Sexpr[results=rd, stage=render]{des2}

    \Sexpr[results=rd, stage=render]{tools:::Rd_expr_PR(1234)}
    }

    使用 R CMD Rd2pdf foo.Rd 渲染得很好.

    看来您需要额外转义任何 \在 Rd 文件中编写它时,如果您通过生成要解析和呈现的单个文件来尝试此操作,则需要 stage=render .

    关于r -\Sexpr[results=rd]{} 在 Rd 中究竟是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7788628/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com