是否有可能在闪亮的 R 中有不同类型的输出?
Is it possible to have different types of output in shiny R?
我一直在想这个问题是否有答案。
所以我在 server.R
中有这段代码
desc <- reactive({
for (i in 1:input$txt1){
print(paste("Cluster ke", i))
clust <- ensemble()
newdata <- clust[which(clust$Cluster==i), 1]
print(paste(newdata))
barm <- vector("numeric")
x <- ncol(clust)-2
for (j in 2:x){
datdesc <- clust[which(clust$Cluster==i), j]
m <- mean(datdesc)
colnam <- colnames(clust[j])
print(paste("Rata-rata produktivitas", colnam,":", m))
for(k in j-1){
barm[k] <- m
}
}
print(paste(barm))
barplot(barm)
}
})
output$desc <- renderPrint({
desc()
})
而这个在 ui
conditionalPanel(condition="input.choice==3", verbatimTextOutput("desc"))
到目前为止,我可以获得我想要的所有输出,描述性文本和条形图。但是,条形图出现在 R 控制台而不是浏览器上。
有什么方法可以让文本和条形图显示在同一页上吗?
我可以使用 renderPrint 或 verbatimTextOutput 的其他功能吗?
或者其他方式?
我一直在考虑一些解决方案,比如将 desc() 分开,这样它就有两个输出,文本和条形图。但是如果有办法一次性搞定,我也很想学。
当然,有许多不同的输出类型很常见。请参阅 Shiny 画廊以获取更多示例。
根据您提供的代码和模板:
UI.R
bootstrapPage(
selectInput(
"choice", "txt1 - descriptive text?",
c(my_text = "my_text",
your_text = "your_text")),
selectInput(inputId = "n_breaks",
label = "Number of bins in histogram (approximate):",
choices = c(10, 20, 35, 50),
selected = 20),
checkboxInput(inputId = "individual_obs",
label = strong("Show individual observations"),
value = FALSE),
checkboxInput(inputId = "density",
label = strong("Show density estimate"),
value = FALSE),
plotOutput(outputId = "main_plot", height = "300px"),
conditionalPanel(condition="input.choice=='my_text'", verbatimTextOutput("desc"))
)
Server.R
function(input, output) {
desc <- reactive({
"some text goes here, I guess!"
})
output$desc <- renderPrint({
desc()
})
output$main_plot <- renderPlot({
hist(faithful$eruptions,
probability = TRUE,
breaks = as.numeric(input$n_breaks),
xlab = "Pandjie Soerja",
main = "Pandjie Soerja")
if (input$individual_obs) {
rug(faithful$eruptions)
}
if (input$density) {
dens <- density(faithful$eruptions,
adjust = input$bw_adjust)
lines(dens, col = "blue")
}
})
}
我一直在想这个问题是否有答案。
所以我在 server.R
中有这段代码desc <- reactive({
for (i in 1:input$txt1){
print(paste("Cluster ke", i))
clust <- ensemble()
newdata <- clust[which(clust$Cluster==i), 1]
print(paste(newdata))
barm <- vector("numeric")
x <- ncol(clust)-2
for (j in 2:x){
datdesc <- clust[which(clust$Cluster==i), j]
m <- mean(datdesc)
colnam <- colnames(clust[j])
print(paste("Rata-rata produktivitas", colnam,":", m))
for(k in j-1){
barm[k] <- m
}
}
print(paste(barm))
barplot(barm)
}
})
output$desc <- renderPrint({
desc()
})
而这个在 ui
conditionalPanel(condition="input.choice==3", verbatimTextOutput("desc"))
到目前为止,我可以获得我想要的所有输出,描述性文本和条形图。但是,条形图出现在 R 控制台而不是浏览器上。
有什么方法可以让文本和条形图显示在同一页上吗?
我可以使用 renderPrint 或 verbatimTextOutput 的其他功能吗?
或者其他方式?
我一直在考虑一些解决方案,比如将 desc() 分开,这样它就有两个输出,文本和条形图。但是如果有办法一次性搞定,我也很想学。
当然,有许多不同的输出类型很常见。请参阅 Shiny 画廊以获取更多示例。
根据您提供的代码和模板:
UI.R
bootstrapPage(
selectInput(
"choice", "txt1 - descriptive text?",
c(my_text = "my_text",
your_text = "your_text")),
selectInput(inputId = "n_breaks",
label = "Number of bins in histogram (approximate):",
choices = c(10, 20, 35, 50),
selected = 20),
checkboxInput(inputId = "individual_obs",
label = strong("Show individual observations"),
value = FALSE),
checkboxInput(inputId = "density",
label = strong("Show density estimate"),
value = FALSE),
plotOutput(outputId = "main_plot", height = "300px"),
conditionalPanel(condition="input.choice=='my_text'", verbatimTextOutput("desc"))
)
Server.R
function(input, output) {
desc <- reactive({
"some text goes here, I guess!"
})
output$desc <- renderPrint({
desc()
})
output$main_plot <- renderPlot({
hist(faithful$eruptions,
probability = TRUE,
breaks = as.numeric(input$n_breaks),
xlab = "Pandjie Soerja",
main = "Pandjie Soerja")
if (input$individual_obs) {
rug(faithful$eruptions)
}
if (input$density) {
dens <- density(faithful$eruptions,
adjust = input$bw_adjust)
lines(dens, col = "blue")
}
})
}