我正在用R开发一个Shiny应用程序。对于renderPrint
输出的某些部分,我希望闪亮的用户界面不显示任何内容。有点像HTML5示例中的pre或div标签的隐藏选项,如下所示:
http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_global_hidden
以下是我的闪亮示例代码。简要说明:您可以使用下拉菜单选择两个变量之一(因子变量或连续变量)。如果您选择因子变量,我想显示标题和table
输出。如果你选择连续变量,我不想看到任何东西。现在,如果您输入空白字符串""
作为返回renderText
,则标题会消失。但是,我不知道如何让renderPrint
显示任何内容。我试过了:
""
。不起作用,因为它返回实际的空白字符串NULL
。不起作用,因为它返回字符串NULL invisible()
。到目前为止最好,但仍然无效,因为它返回灰色格式化的框。目标是什么都不显示。下面给出了闪亮的ui.r和server.r代码: 库(有光泽)
##
## Start shiny UI here
##
shinyUI(pageWithSidebar(
headerPanel("Shiny Example"),
sidebarPanel(
wellPanel(
selectInput( inputId = "variable1",label = "Select First Variable:",
choices = c("Binary Variable 1" = "binary1",
"Continuous Variable 1" = "cont1"),
selected = "Binary Variable 1"
)
)
),
mainPanel(
h5(textOutput("caption2")),
verbatimTextOutput("out2")
)
))
##
## Start shiny server file and simulated data here
##
binary1 <- rbinom(100,1,0.5)
cont1 <- rnorm(100)
dat <- as.data.frame(cbind(binary1, cont1))
dat$binary1 <- as.factor(dat$binary1)
dat$cont1 <- as.numeric(dat$cont1)
library(shiny)
shinyServer(function(input, output) {
inputVar1 <- reactive({
parse(text=sub(" ","",paste("dat$", input$variable1)))
})
output$caption2 <- renderText({
if ( (is.factor(eval(inputVar1()))==TRUE) ) {
caption2 <- "Univariate Table"
} else {
if ( (is.numeric(eval(inputVar1()))==TRUE) ) {
caption2 <- ""
}
}
})
output$out2 <- renderPrint({
if ( (is.factor(eval(inputVar1()))==TRUE) ) {
table(eval(inputVar1()))
} else {
if ( (is.numeric(eval(inputVar1()))==TRUE) ) {
invisible()
}
}
})
})
一些问题......
renderText
处理与renderPrint
不同的隐藏/不可见表示?是因为前者输出文本作为预标签;然而,后者在div标签中显示格式化输出?renderPrint
函数传递此选项/参数?或者我是否需要使用不同的闪亮功能来实现此功能?顺便说一下......我的R版本是:version.string R version 3.0.1 (2013-05-16)
我正在使用闪亮版{R package version 0.6.0}
。在此先感谢您的帮助。
答案 0 :(得分:0)
我不确定我是否理解了您的问题,但请尝试以下方法: 这里首先是 Ui :
while True:
print("-------------")
name=input("Name: ")
age=input ("Age: ")
contInput=input("Continue Input? (y/n) ")
fp.open("test.txt", "a")
fp.write(name+","+age+"\n")
if contInput=="n":
fp.close()
break
else:
continue
with open("test.txt", "r") as fp:
rd = fp.read().split('\n')
????
fp.close()
在此处启动闪亮的服务器文件和模拟数据:
library(shiny)
ui <- fluidPage(pageWithSidebar(
headerPanel("Shiny Example"),
sidebarPanel(
wellPanel(
selectInput(inputId = "variable1",label = "Select First Variable:",
choices = c("Binary Variable 1" = "binary1",
"Continuous Variable 1" = "cont1"),
selected = "Binary Variable 1"
)
)
),
mainPanel(
h5(textOutput("caption2")),
verbatimTextOutput("out2", placeholder=TRUE)
)
))
最后:
binary1 <- rbinom(100,1,0.5)
cont1 <- rnorm(100)
dat <- as.data.frame(cbind(binary1, cont1))
dat$binary1 <- as.factor(dat$binary1)
dat$cont1 <- as.numeric(dat$cont1)
server <- (function(input, output) {
inputVar1 <- reactive({
parse(text=sub(" ","",paste("dat$", input$variable1)))
})
output$caption2 <- renderText({
if ((is.factor(eval(inputVar1()))==TRUE) ) {
caption2 <- "Univariate Table"
} else {
if ((is.numeric(eval(inputVar1()))==TRUE) ) {
caption2 <- "Continous"
}
}
})
output$out2 <- renderPrint({
if ((is.factor(eval(inputVar1()))==TRUE) ) {table(eval(inputVar1()))}
})
})