我想使用checkboxGroupInput然后,如果选中某个框,我想要一个conditionalPanel.这里有一个玩具示例:
shinyUI(fluidPage(
sidebarLayout(
sidebarPanel(
checkboxGroupInput("items","Which Item?",
choices=c("A","B","C","D")),
conditionalPanel( condition = "input.items == 'D'",
numericInput("n","n",value=50,min=0,max=100,step=1)
)
),
mainPanel(
uiOutput("text")
)
)
Run Code Online (Sandbox Code Playgroud)
))
现在,如果只选择框"D",这样可以正常工作,但如果选择了几个框(如我的问题中那样正常)则不行.
在server.R之类的东西
if("D" %in% input$which)
Run Code Online (Sandbox Code Playgroud)
工作正常,但似乎在ui.R. 例如,我也试过将ala R子集化
conditionalPanel( condition = "input.items[4] == 'D'",
Run Code Online (Sandbox Code Playgroud)
但这也不起作用.
沃尔夫冈
以前在这里讨论过如何在ui.R中使用希腊字母.例如,如果想要用户输入参数mu的数值,可以使用:
numericInput("mu",HTML("μ"),value=0)
Run Code Online (Sandbox Code Playgroud)
并显示μ.我想做同样的事情,但使用selectInput中的选择列表.我试过了:
selectInput("param", label = "Parameter",choices=c("α" = "alpha","beta"))
Run Code Online (Sandbox Code Playgroud)
但这只是显示α.我也尝试过:
selectInput("param", label = "Parameter",choices=c(HTML("α") = "alpha","beta"))
Run Code Online (Sandbox Code Playgroud)
和
selectInput("param", label = "Parameter",choices=c("HTML("α")" = "alpha","beta"))
Run Code Online (Sandbox Code Playgroud)
但这会产生错误.
如果一个函数有一个参数和椭圆并且两者以相同的字母开头,我会遇到奇怪的行为。一个玩具示例是这个
> testfun=function(aa=0, ...) {print(aa); list(...)}
> testfun(b=1)
[1] 0
$b
[1] 1
> testfun(a=1)
[1] 1
list()
Run Code Online (Sandbox Code Playgroud)
因此,当我调用时testfun(b=1),一切正常,aa打印为 0 并返回元素 b=1 的列表。但是,如果我调用testfun(a=1),aa 现在为 1 并且返回一个空列表。显然,如果有一个参数以与传递给 ... 的字母相同的字母开头,则该参数会发生更改并且...会丢失。
知道这是为什么吗?有什么办法可以避免这种情况吗?在我真正的问题中,...由用户提供,他们可能使用任何名称作为参数(除了那些已经是函数参数的名称,例如这里的 aa )
我正在尝试为我的stat类做一些演示.除其他事项外,我想展示所涉及的一步一步的过程.有关我正在寻找的简化示例,请考虑以下小玩具R功能:
toyPlot <- function() {
x <- 1:100/100
y <- x+rnorm(100,0,0.2)
plot(x,y)
Sys.sleep(2)
abline(lm(y~x))
Sys.sleep(2)
title(main="Fitted Line Plot")
}
Run Code Online (Sandbox Code Playgroud)
它绘制一个散点图,等待两秒钟,添加LSR行,等待两秒钟,然后添加标题.
现在,当我在闪亮的情况下做同样的事情时,等待整整4秒,然后立即完整地完成图表.
我花了一些时间寻找解决方案,并发现了一些看起来很有用的命令(session $ onFlushed,invalidateLater,reactiveTimer),但我不能让他们中的任何一个做我想做的事.
我有一个renderImage的deleteFile = FALSE参数的问题.简而言之,它无论如何都会删除图像文件.
作为一个简短的测试例子,我有ui.R
library(shiny)
shinyUI(fluidPage(
titlePanel("Testing ..."),
sidebarLayout(
sidebarPanel(),
mainPanel(
imageOutput("f1")
)
)
))
Run Code Online (Sandbox Code Playgroud)
和服务器.R
library(shiny)
shinyServer(function(input, output,session) {
output$f1 <- renderImage({
list(src="f1.png", deleteFile = FALSE)
})
})
Run Code Online (Sandbox Code Playgroud)
其中f1.png是一些png图像文件.当我运行它时,它显示图像确定,但也从文件夹中删除它,正是deleteFile = FALSE应该不执行的操作.
我在Win7机器上,以防万一.
沃尔夫冈
补充:我现在找到另一种方法,使用
output$f1 <- renderText({
HTML("<img src=\"f1.png\">")
})
Run Code Online (Sandbox Code Playgroud)
和uiOutput在ui.R中,这个工作正常,但原始问题仍然存在,为什么闪亮删除图像文件尽管deleteFile = FALSE参数?
沃尔夫冈