我试图在Shiny中呈现的DataTable中设置列的宽度,并且无法使用aoColumnDefs选项实现它.有人曾尝试过这个吗?我的表有1个文本,后跟3个数字列.数字列需要更窄,第1列(文本)更宽.
output$result <- renderDataTable({
z <- as(dataInput(), "data.frame")
setnames(z, c("Rules", "Support", "Confidence", "StatDep"))
z
}, options = list(aLengthMenu = c(5, 30, 50), iDisplayLength = 5, bSortClasses = TRUE,
aoColumnDefs = list(sWidth = "50px", aTargets = list(1))))
Run Code Online (Sandbox Code Playgroud)
谢谢,
**更新**这似乎有效,但也可能有其他选择.
output$result <- renderDataTable({
z <- as(dataInput(), "data.frame")
setnames(z, c("Rules", "Support", "Confidence", "StatDep"))
z
}, options = list(aLengthMenu = c(5, 30, 50), iDisplayLength = 5, bSortClasses = TRUE,
bAutoWidth = FALSE,
aoColumn = list(list(sWidth = "150px", sWidth = "30px",
sWidth = "30px", …Run Code Online (Sandbox Code Playgroud) (问题描述后的代码)
我正在制作一个带有Shiny的Web应用程序,我正在执行的一些R命令需要几分钟才能完成.我发现我需要向用户提供Shiny正在工作的一些指示,或者他们会不断更改我在侧面板中提供的参数,这只会导致Shiny在初始运行完成后被动地重新启动计算.
所以,我创建了一个条件面板,显示一条带有以下内容的"正在加载"消息(称为模态)(感谢Shiny Google小组中Joe Cheng的条件声明):
# generateButton is the name of my action button
loadPanel <- conditionalPanel("input.generateButton > 0 && $('html').hasClass('shiny-busy')"),
loadingMsg)
Run Code Online (Sandbox Code Playgroud)
如果用户仍在当前选项卡上,则此操作正常.但是,用户可以切换到另一个选项卡(可能包含一些需要运行一段时间的计算),但加载面板会立即显示并消失,而R会在计算结果时突然显示,然后仅在之后刷新内容它完成了.
由于这可能难以想象,我提供了一些代码在下面运行.您会注意到单击按钮开始计算将产生一个很好的加载消息.但是,当您切换到选项卡2时,R开始运行一些计算,但无法显示加载消息(可能Shiny没有注册为忙?).如果再次按下按钮重新开始计算,则加载屏幕将正确显示.
我希望在切换到正在加载的选项卡时显示加载消息!
ui.R
library(shiny)
# Code to make a message that shiny is loading
# Make the loading bar
loadingBar <- tags$div(class="progress progress-striped active",
tags$div(class="bar", style="width: 100%;"))
# Code for loading message
loadingMsg <- tags$div(class="modal", tabindex="-1", role="dialog",
"aria-labelledby"="myModalLabel", "aria-hidden"="true",
tags$div(class="modal-header",
tags$h3(id="myModalHeader", "Loading...")),
tags$div(class="modal-footer",
loadingBar))
# The conditional panel to show when shiny is busy
loadingPanel <- conditionalPanel(paste("input.goButton …Run Code Online (Sandbox Code Playgroud) 我在R中创建了我的第一个Shiny应用程序.我使用闪亮来显示我进行的调查的双变量结果.从一对输入框中,用户可以从调查中选择变量,并生成各种统计数据(表格,图表等),以便他们探索调查数据的某些属性.
我想要包含实际PDF调查的链接.现在我已经编写了代码,以便PDF调查可以链接到,通过单击文本"点击此处下载调查",该调查显示为helpText嵌入在... wellPanel内pageWithSidebar.我使用了以下命令(在ui.R文件中):
wellPanel(
helpText( a("Click Here to Download Survey", href="http://www.dfcm.utoronto.ca/Assets/DFCM2+Digital+Assets/Family+and+Community+Medicine/DFCM+Digital+Assets/Faculty+$!26+Staff/DFCM+Faculty+Work+$!26+Leadership+Survey+Poster.pdf")
)
)
Run Code Online (Sandbox Code Playgroud)
有没有办法在新标签(IE,Firefox等)中自动打开此文件?目前,该功能是在与闪亮应用相同的选项卡中打开链接.因此,您必须使用向前和向后按钮从应用程序转到调查并再次返回.
现在,我右键单击链接并选择"在新标签页中打开".有没有办法将此功能嵌入到后端代码中,因此它成为默认值.
免责声明:我没有真正的html或java经验.我是R的狂热用户.如果有可能的解决方案,请您尝试解释我在ui.R或server.R文件中分别嵌入代码更改的位置.
如何使用R Shiny声明全局变量,以便您不需要多次运行相同的代码片段?作为一个非常简单的例子,我有两个使用相同精确数据的图,但我只想计算数据ONCE.
这是ui.R文件:
library(shiny)
# Define UI for application that plots random distributions
shinyUI(pageWithSidebar(
# Application title
headerPanel("Hello Shiny!"),
# Sidebar with a slider input for number of observations
sidebarPanel(
sliderInput("obs",
"Number of observations:",
min = 1,
max = 1000,
value = 500)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot1"),
plotOutput("distPlot2")
)
))
Run Code Online (Sandbox Code Playgroud)
这是server.R文件:
library(shiny)
shinyServer(function(input, output) {
output$distPlot1 <- renderPlot({
dist <- rnorm(input$obs)
hist(dist)
})
output$distPlot2 <- renderPlot({
dist <- rnorm(input$obs) …Run Code Online (Sandbox Code Playgroud) 有没有人根据模糊匹配创建或看到一个闪亮的应用程序,其中包含搜索框小部件,在您键入时提供上下文建议?
彭博终端使用它,谷歌使用它.其中一种可能的底层技术叫做elasticsearch.org模糊查询,有两个R实现:
duncantl/RElasticSearchropensci/elastic搜索框过滤器的基本到来Shiny的数据表并不完全切断它.
如果这是尚未与Shiny集成的内容,那么任何粗略的指南如何构建它?我怀疑当你想查找特定的行而没有显示完整的表时,它对于包含大量文本的biggish表(或文档)非常有用.
按2.3节的解释在这里,我可以通过设置删除rownames的数据表rownames = FALSE

DT::renderDataTable在R闪亮中使用时如何抑制行名?以下方法不起作用,因为如果查看dataTables选项引用,则没有rownames选项
output$subsettingTable <- DT::renderDataTable(
subsetTable(), filter = 'top', server = FALSE,
options = list(pageLength = 5, autoWidth = TRUE, rownames= FALSE
))
Run Code Online (Sandbox Code Playgroud)
我的问题类似于这里的问题.答案是有的renderTable,我已经尝试过那里的答案没有DT::renderDataTable成功.
我正在尝试创建一个闪亮的应用程序,允许您根据用户定义的子分析下载格式良好的PDF报告.我发现这个要点包含一个最小的例子,它运作得很好.但是,当我尝试添加一个基于Rstudio画廊的"每加仑英里数"示例的情节时,我在尝试调整代码时遇到了一些错误.
这是我的server.R代码:
library(knitr)
library(datasets)
library(ggplot2)
mpgData <- mtcars
mpgData$am <- factor(mpgData$am, labels = c("Automatic", "Manual"))
shinyServer(function(input, output) {
formulaText <- reactive({
paste("mpg ~", input$variable)
})
# Return the formula text for printing as a caption
output$caption <- renderText({
formulaText()
})
# Generate a plot of the requested variable against mpg and only
# include outliers if requested
output$mpgPlot <- renderPlot({
boxplot(as.formula(formulaText()),
data = mpgData,
outline = input$outliers)
})
myPlot1 <- reactive({
p <- print(ggplot(mpgData, …Run Code Online (Sandbox Code Playgroud) 我知道在Shiny Server Pro中有一个密码控制功能.问题是Shiny有函数passwordInput(),就像textInput()有人想过如何做以下事情:
1)只有在输入正确的密码后启动应用程序2)在输入正确的密码后启动应用程序的一部分(例如,我在shinydashboard中有一些选项卡,我想只通过密码访问其中一个)
谢谢!
我正在寻找一种方法来实现我的shinyUI元素的禁用/ abling功能.这里 xiaodaigh给出了一个提示如何禁用/能够actionButton(见下图),这是我想要的结果,但是代码并没有使用我测试的其他gui元素(例如numericInput).
(我知道一个conditionalPanel功能,但这不是我想要的效果.)
我非常感谢任何建议,特别是因为我不太熟悉JavaScript.

我有一个闪亮的应用程序,需要用户登录才能访问底层数据集.
用户名和密码从表单字段中收集,并通过另一台服务器上的RESTful API提交,以获取将来请求中使用的访问令牌.我没有在这个例子中包含这些细节.

我想让网络浏览器记住登录详细信息并自动登录,但不太清楚如何.
在我的第一个实现中,将the <input type="text" name="username">和<input type="password" name="password">plus actionButton添加到页面中.这使得用户每次重新启动闪亮的应用程序时都会重新登录,这对于开发来说很复杂并且对用户来说是不愉快的.
然后我找到了https://gist.github.com/kostiklv/968927,其中详细说明了让Web浏览器记住密码并登录的条件.
闪亮的工作在一个页面上,所以我没有一个单独的登录页面(这会产生一个新的闪亮会话,丢弃登录!).
我尝试了各种各样的组合,这里是我最接近的.此脚本正确填写过去的密码,但用户仍然必须手动点击提交.
请注意,我有一个自定义黑客我的闪亮,以使得type="password"能够被对待type="text".有关访问此代码的信息,请参阅问题的底部
保存此代码,login.R然后运行R并键入source("login.R")
write("","blank.html")
require(shiny)
addResourcePath("login",tools:::file_path_as_absolute("./"))
runApp(list(
ui=bootstrapPage(
tags$form(action="#",target="loginframe",
tags$input(id="username",type="text",placeholder="Username"),
tags$input(id="password",type="password",placeholder="Password"),
tags$input(id="loginButton",class="btn btn-primary",type="submit",value="Login")
),
tags$iframe(name="loginframe",src="login/blank.html",style="display:none")
),
server=function(input, output) {
observe({message(
"username ",input$username,"\n",
"password ",input$password,"\n"
)})
})
)
Run Code Online (Sandbox Code Playgroud)
请注意,html的存在input submit button似乎表明它应该只在每次提交时更新输入.如果没有提交按钮,则每次击键都会更新其输入.
闪亮的也是如此submitButton.
离开表单但删除按钮允许输入$ username并输入$ password来访问服务器代码,但是......
为了启用传统的用户登录和自动登录,我需要按钮以避免重复尝试对部分用户名和密码进行身份验证(这可能会导致问题).
以下是测试中的控制台日志
username
password
<enter username AA and …Run Code Online (Sandbox Code Playgroud)