在我的Rshiny应用程序中,我需要在仪表板上显示句子(字符串)。这些句子是在另一个过程中创建的,并存储在名为session1=com.jcraft.jsch.Session@6fa7ce4
session2=undefined
session3=undefined
的变量中。我需要根据sentences
中存储的字符串数形成多行并将其显示在可视化仪表板上。作为一种愚蠢的编码实践,我执行了以下操作:
sentences
因此if (length(sentences) == 1){
lines_to_display <- helpText(tags$ol(tags$li(sentences[[1]])))
} else if (length(sentences) == 2){
lines_to_display <- helpText(tags$ol(tags$li(sentences[[1]]),
tags$li(sentences[[2]])
))
} else if (length(sentences) == 3){
lines_to_display <- helpText(tags$ol(tags$li(sentences[[1]]),
tags$li(sentences[[2]]),
tags$li(sentences[[3]])
))
} else if (length(sentences) == 4){
lines_to_display <- helpText(tags$ol(tags$li(sentences[[1]]),
tags$li(sentences[[2]]),
tags$li(sentences[[3]]),
tags$li(sentences[[4]])
))
}
将包含要显示的字符串,并将它们用于:
lines_to_display
这很愚蠢,因为长度(句子)可能达到10。是否有一种聪明的方法来迭代conditional_panel_citys <- conditionalPanel( "$('li.active a').first().html()==='city data visualization'",
sidebarPanel(
width = 3,
sidebar_style,
helpText("Our key observations:"),
lines_to_display)
并将所有字符串逐行加载到sentences
中?
答案 0 :(得分:1)
for循环可能是您的朋友,请参见下文
Test<-list("AAAAAAA",
"BBBBBBBB",
"CCCCCCC",
"DDDDDDD",
"EEEEEEEE",
"FFFFFFFF")
lines_to_display<-list()
Length<-length(Test)
for( i in 1:Length){
Testy<-Test[[i]]
lines_to_display[[i]]<- helpText(tags$ol(tags$li(Testy)))}
> lines_to_display
[[1]]
<span class="help-block">
<ol>
<li>AAAAAAA</li>
</ol>
</span>
[[2]]
<span class="help-block">
<ol>
<li>BBBBBBBB</li>
</ol>
</span>
[[3]]
<span class="help-block">
<ol>
<li>CCCCCCC</li>
</ol>
</span>
[[4]]
<span class="help-block">
<ol>
<li>DDDDDDD</li>
</ol>
</span>
依此类推...