R diagrammeR 在从 r 变量读取文本时使用 html 进行格式化
R diagrammeR using html for formatting while reading text from r variable
我正在使用 R 包绘图器创建流程图。为了获得所需的格式(粗体、项目符号、左对齐),我可以在 html 中编写节点标签。但是,我还想通过在 R 中调用变量来填充一些文本,但我不知道如何同时执行这两项操作(html 格式化 + 调用 R 变量)。
在此代码片段中,html 格式有效,但不是打印分配给变量 'text_var' 的字符串,而是打印字符串 'text_var'.
library(DiagrammeR)
text_var = 'Some text'
grViz("digraph flowchart {
# Node definitions
node [fontname = Helvetica, shape = box]
tab1 [label = <<b> Node 1 </b> <br ALIGN = 'LEFT' /> • text_var <br ALIGN = 'LEFT' />
>]
tab2 [label = 'Node 2']
# Edge definitions
tab1 -> tab2
}")
在这段代码中,我打印了分配给变量 'text_var' 的字符串,但是没有 html。
library(DiagrammeR)
text_var = 'Some text'
grViz("digraph flowchart {
# Node definitions
node [fontname = Helvetica, shape = box]
tab1 [label = '@@1']
tab2 [label = 'Node 2']
# Edge definitions
tab1 -> tab2
}
[1]: paste0('Node 1 \n ', text_var)
")
期望的结果是第二个示例中的文本具有第一个示例中的格式。谢谢!
R 不知道您想要将传递给 grViz 的字符串中的字符串 "text_var" 替换为包含您的字符串的实际变量 text_var
。试试这个:
grViz(gsub("text_var", text_var, "digraph flowchart {
# Node definitions
node [fontname = Helvetica, shape = box]
tab1 [label = <<b> Node 1 </b> <br ALIGN = 'LEFT' /> • text_var <br ALIGN = 'LEFT' />
>]
tab2 [label = 'Node 2']
# Edge definitions
tab1 -> tab2
}"))
```
虽然 有效,但也可以使用
Graphviz Substitution.
我发现这个实现相当有问题,虽然 @@1
应该在下面的例子中工作,但我发现在我关闭它之前它花费了超过 3 分钟的完整 CPU 使用时间。 @@1-1
似乎有效。
text_var = 'Some text'
grViz("
digraph flowchart {
# Node definitions
node [fontname = Helvetica, shape = box]
tab1 [label = <
<b>Node 1</b>
<br ALIGN = 'LEFT' />
• @@1-1
<br ALIGN = 'LEFT' />
>]
tab2 [label = 'Node 2']
# Edge definitions
tab1 -> tab2
}
[1]: text_var"
)
我正在使用 R 包绘图器创建流程图。为了获得所需的格式(粗体、项目符号、左对齐),我可以在 html 中编写节点标签。但是,我还想通过在 R 中调用变量来填充一些文本,但我不知道如何同时执行这两项操作(html 格式化 + 调用 R 变量)。
在此代码片段中,html 格式有效,但不是打印分配给变量 'text_var' 的字符串,而是打印字符串 'text_var'.
library(DiagrammeR)
text_var = 'Some text'
grViz("digraph flowchart {
# Node definitions
node [fontname = Helvetica, shape = box]
tab1 [label = <<b> Node 1 </b> <br ALIGN = 'LEFT' /> • text_var <br ALIGN = 'LEFT' />
>]
tab2 [label = 'Node 2']
# Edge definitions
tab1 -> tab2
}")
在这段代码中,我打印了分配给变量 'text_var' 的字符串,但是没有 html。
library(DiagrammeR)
text_var = 'Some text'
grViz("digraph flowchart {
# Node definitions
node [fontname = Helvetica, shape = box]
tab1 [label = '@@1']
tab2 [label = 'Node 2']
# Edge definitions
tab1 -> tab2
}
[1]: paste0('Node 1 \n ', text_var)
")
期望的结果是第二个示例中的文本具有第一个示例中的格式。谢谢!
R 不知道您想要将传递给 grViz 的字符串中的字符串 "text_var" 替换为包含您的字符串的实际变量 text_var
。试试这个:
grViz(gsub("text_var", text_var, "digraph flowchart {
# Node definitions
node [fontname = Helvetica, shape = box]
tab1 [label = <<b> Node 1 </b> <br ALIGN = 'LEFT' /> • text_var <br ALIGN = 'LEFT' />
>]
tab2 [label = 'Node 2']
# Edge definitions
tab1 -> tab2
}"))
```
虽然
我发现这个实现相当有问题,虽然 @@1
应该在下面的例子中工作,但我发现在我关闭它之前它花费了超过 3 分钟的完整 CPU 使用时间。 @@1-1
似乎有效。
text_var = 'Some text'
grViz("
digraph flowchart {
# Node definitions
node [fontname = Helvetica, shape = box]
tab1 [label = <
<b>Node 1</b>
<br ALIGN = 'LEFT' />
• @@1-1
<br ALIGN = 'LEFT' />
>]
tab2 [label = 'Node 2']
# Edge definitions
tab1 -> tab2
}
[1]: text_var"
)