标签: shiny

R Shiny设置DataTable列宽

我试图在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)

r shiny dt

39
推荐指数
2
解决办法
3万
查看次数

在更改选项卡面板时显示Shiny正忙(或加载)

(问题描述后的代码)

我正在制作一个带有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

38
推荐指数
3
解决办法
2万
查看次数

添加指向R Shiny Application的链接,以便在新的浏览器选项卡中打开链接

我在R中创建了我的第一个Shiny应用程序.我使用闪亮来显示我进行的调查的双变量结果.从一对输入框中,用户可以从调查中选择变量,并生成各种统计数据(表格,图表等),以便他们探索调查数据的某些属性.

我想要包含实际PDF调查的链接.现在我已经编写了代码,以便PDF调查可以链接到,通过单击文本"点击此处下载调查",该调查显示为helpText嵌入在... wellPanelpageWithSidebar.我使用了以下命令(在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

37
推荐指数
1
解决办法
2万
查看次数

R Shiny中是否存在全局变量?

如何使用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)

r global-variables shiny

37
推荐指数
2
解决办法
3万
查看次数

在R中带有"Shiny"的模糊搜索框小部件?

有没有人根据模糊匹配创建或看到一个闪亮的应用程序,其中包含搜索框小部件,在您键入时提供上下文建议

彭博终端使用它,谷歌使用它.其中一种可能的底层技术叫做elasticsearch.org模糊查询,有两个R实现:

  1. duncantl/RElasticSearch
  2. ropensci/elastic

搜索框过滤器的基本到来Shiny数据表并不完全切断它.

如果这是尚未与Shiny集成的内容,那么任何粗略的指南如何构建它?我怀疑当你想查找特定的行而没有显示完整的表时,它对于包含大量文本的biggish表(或文档)非常有用.

fuzzy-search r elasticsearch shiny

37
推荐指数
1
解决办法
2022
查看次数

在R shiny中使用DT :: renderDataTable时如何禁止行名?

按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成功.

r shiny dt

37
推荐指数
1
解决办法
2万
查看次数

使用Shiny应用程序中的knitr(LaTeX)生成PDF报告

我正在尝试创建一个闪亮的应用程序,允许您根据用户定义的子分析下载格式良好的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)

r ggplot2 knitr shiny

36
推荐指数
1
解决办法
3901
查看次数

密码输入后启动Shiny app

我知道在Shiny Server Pro中有一个密码控制功能.问题是Shiny有函数passwordInput(),就像textInput()有人想过如何做以下事情:

1)只有在输入正确的密码后启动应用程序2)在输入正确的密码后启动应用程序的一部分(例如,我在shinydashboard中有一些选项卡,我想只通过密码访问其中一个)

谢谢!

passwords r shiny

36
推荐指数
2
解决办法
2万
查看次数

R Shiny - 禁用/有光泽的UIUI元素

我正在寻找一种方法来实现我的shinyUI元素的禁用/ abling功能.这里 xiaodaigh给出了一个提示如何禁用/能够actionButton(见下图),这是我想要的结果,但是代码并没有使用我测试的其他gui元素(例如numericInput).

(我知道一个conditionalPanel功能,但这不是我想要的效果.)

我非常感谢任何建议,特别是因为我不太熟悉JavaScript.

在此输入图像描述

r shiny

35
推荐指数
3
解决办法
2万
查看次数

如何获取Web浏览器密码存储以记住R/Shiny密码?

问题

我有一个闪亮的应用程序,需要用户登录才能访问底层数据集.

用户名和密码从表单字段中收集,并通过另一台服务器上的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)

authentication r shiny

35
推荐指数
2
解决办法
3663
查看次数