我正在尝试使用 Shiny 创建一个应用程序,我希望用户能够选择图中每条线的颜色。大体思路是在应用程序中导入数据,然后绘制数据中的每个变量。我尝试使用shinysky包中的颜色选择器'jscolorInput',当放置在ui.r文件中时它工作正常,但由于我希望我的应用程序对于上传的每个数据集都是动态的,我需要将颜色选择器放在服务器中。 R,使用反应函数。当放置在服务器中时,'jscolorInput' 不起作用。
我想做的是:
我在闪亮的开发和 stackoverflow 方面都很新,所以请原谅我的错误。
这是一个不起作用的可重现示例。
require(shinysky)
require(shiny)
dat <- data.frame(matrix(rnorm(120, 2, 3), ncol=3))
runApp(list(
ui = bootstrapPage(
# The reactive colorpicker
uiOutput('myPanel'),
# The plot
plotOutput('plot')
),
server = function(input, output) {
# Print as many colorpickers as the columns in the dataset
cols <- reactive({
n <- ncol(dat)
for(i in 1:n){
print(jscolorInput(paste("col", i, sep="_")))
}
})
output$myPanel <- renderPrint({cols()})
# Put all the input in a vector
colors <- reactive({
n <- …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 R 中的 ShinySky 包在 Shiny 中填充 Typeahead 框。
我正在尝试扩展示例,其中用于预填充 Typeahead 的数据被硬编码到textInput.typeahead函数中:
textInput.typeahead(
id="thti"
,placeholder="type 'name' or '2'"
,local=data.frame(name=c("name1","name2"),info=c("info1","info2")) #<- LOOK!
,valueKey = "name"
,tokens=c(1,2)
,template = HTML("<p class='repo-language'>{{info}}</p> <p class='repo-name'>{{name}}</p> <p class='repo-description'>You need to learn more CSS to customize this further</p>")
)
Run Code Online (Sandbox Code Playgroud)
在函数中间定义一个本地数据框不是我想要做的,就像这里的例子一样:
,local=data.frame(name=c("name1","name2"),info=c("info1","info2"))
Run Code Online (Sandbox Code Playgroud)
我想提供一个参数,local它是一个反应对象,它是在 Shiny 的其他地方创建的。
到目前为止,我一直无法这样做。
这是我尝试使用反应性动态填充 Lookhead 选项的策略:
1)让用户使用滑块对数据帧进行子集化。
2) 设置 Lookahead 以读取子集数据帧,使用类似,local=subset(DF)
3) 希望 Lookahead 按预期工作。
看起来够简单吗?这是一个屏幕截图,您可以清楚地看到 Lookhead 没有出现在 111 的用户输入下方。下面是我的代码。任何帮助将不胜感激。
library(shiny)
library(shinysky)
options(shiny.trace = F) # change …Run Code Online (Sandbox Code Playgroud) 我们来看看其中一个演示.
runExample("09_upload")
Run Code Online (Sandbox Code Playgroud)
我正在使用提供的文件执行一些计算并显示所有上传文件的聚合性能.因此,我使用类似的东西
tryCatch(compute.smth(), error=function(e){})
Run Code Online (Sandbox Code Playgroud)
这样显示的结果不会受到错误输入的影响.但是,我想以某种方式表明上传坏文件会导致错误,通知用户输入的问题.它会是这样的
tryCatch(compute.smth(), error=badFile())
Run Code Online (Sandbox Code Playgroud)
其中badFile()应该修改一些可显示的输出.有任何想法吗?作为最后的手段,这可能是一个选择,但我想要一些原生的Shiny.