小编SNT*_*SNT的帖子

无法将用户输入传递给 R 闪亮模块

我正在开发一个闪亮的应用程序,它在加载时显示一个默认表。有一个用户输入,当我输入并单击运行时应该更新表。而且当点击重置它应该显示默认表。截至现在我能够查看默认表并且当我点击运行按钮时没有任何反应。

optimzation <- function(input, output, session, data,budget,run,reset) {

  v <- reactiveValues(data = data)

  observeEvent(run, {
    v$data <- data %>% mutate(carb = mpg * budget)
  })

  observeEvent(reset, {
    v$data <- data # your default data
  })  

  output$mod_table <- DT::renderDataTable({
    DT::datatable(v$data, filter = "top")
  })
}

optimzationUI <- function(id) {
  ns <- NS(id)
  dataTableOutput(ns("mod_table"))

}

shinyApp(
    ui = basicPage(
      mainPanel(
        numericInput("budget_input", label = h5("Total Budget"), value = 9000000),
        actionButton("opt_run", "Run"),
        actionButton("opt_reset", "Reset"),
        tags$hr(),
        optimzationUI("optimize")
      )
    ),
    server = function(input, output) {
      demodata<-mtcars …
Run Code Online (Sandbox Code Playgroud)

r shiny

4
推荐指数
2
解决办法
970
查看次数

在 D3js 中格式化 x 轴的标签

我正在尝试使用 d3js 创建一些条形图。我使用相同的 js 作为模板并传递不同的数据来显示图表。如果它们少于 10 个数据点,则 x 轴标签看起来不错。但是,如果它们的数据点超过 10 个,则 x 轴标签会重叠和聚集。所以我试图找出一种方法,我可以跳过每 4 个滴答声。下面是代码。当大于 9 个数据点时,它根本不显示任何刻度。

` var ticks = d3.selectAll(".tick text");

               function tickLabels(dataLength, d) {
                   if (dataLength < 9) return "";
                   return  ticks.attr("class", function(d,i){
                       if(i%3 != 0) d3.select(this).remove();
                   })
                 }

              var xAxis = d3.axisBottom().scale(x)
                                .ticks()
                                .tickFormat(function(d,i) {  return tickLabels(all.length, d) })

             `
Run Code Online (Sandbox Code Playgroud)

label bar-chart d3.js

3
推荐指数
1
解决办法
2795
查看次数

动态渲染 R 闪亮框中的标题

我正在尝试动态呈现我在 R 中使用的盒子的标题。

截至目前,框代码如下所示

 box( title = "lorem ipsum",
        width = 6,
        solidHeader = TRUE,
        status = "primary",
        tableOutput("consumption"),
        collapsible = T
      )
Run Code Online (Sandbox Code Playgroud)

是否可以在服务器中使用渲染文本并将文本作为标题传递:

 con1 <- renderText({
   if (age() == FALSE)
       {
         return("lorem1")

       }
       else
       {
         return("lorem2")
       }
 })
Run Code Online (Sandbox Code Playgroud)

r shiny

3
推荐指数
1
解决办法
2031
查看次数

无法在 R Shiny 应用程序中呈现 R Markdown

我正在尝试生成一个报告,我想在其中从 Shiny 应用程序的多个选项卡中输出表格和图表。下面是我的闪亮应用程序和降价代码。当我尝试下载报告时,我没有得到情节,而只有 R 代码。如何在可下载报告中呈现输出。

app.R

library(shiny)
library(shinyWidgets)
library(shinydashboard)
library(DT)
library(plotly)
library(rmarkdown)


sidebar <- dashboardSidebar(
  sidebarMenu(id = "tab",
              menuItem("1", tabName = "1"),
              menuItem("2", tabName = "2"),
              downloadButton("report", "Generate report")

  )
)
body <-   ## Body content
  dashboardBody(box(
    tabItems(
      tabItem(tabName = "1",
              fluidRow(DT::dataTableOutput("atc_topline"))

      ),
      tabItem(tabName = "2",
              fluidRow(  plotlyOutput("stack"))
      )
    )
  ))

ui <-   dashboardPage(dashboardHeader(title = "Scorecard"),
                      sidebar,
                      body)

# Define the server code
server <- function(input, output,session) {
  delta_plot <- data.frame(structure(list(Month = structure(c(17257, 17287, 17318, 17348,
 17379, 17410, 17440, 17471, …
Run Code Online (Sandbox Code Playgroud)

r r-markdown shiny

3
推荐指数
1
解决办法
786
查看次数

基于来自另一列的字符串值创建新列

我在 r 中有一个数据框,其中有一列是一个大字符串。我想使用该字符串创建具有特定值的新列。

这是示例数据框:

dom <- data.frame(
  Site = c("alpha", "beta", "charlie", "delta"),
  Banner = c("testing_Watermelon -DPI_300x250 v2"   , "notest_Vanilla Latte-DPI_300x250 v2" , "bottle :15s","aaaa vvvv cccc Build_Mobile_320x480")
)
Run Code Online (Sandbox Code Playgroud)

现在,如果列 Banner 有包含Watermelonor 的字符串,Vanilla那么新列label应该只有值WatermelonVanillaelse Default。以下是预期的数据帧应该是什么样的。

我如何使用grep或其他任何东西来拥有多个条件?

dom_output <- data.frame(
  Site = c("alpha", "beta", "charlie", "delta"),
  Banner = c("testing_Watermelon -bbb_300x250 v2"   , "notest_Orange aaa_300x250 v2"    , "bottle :15s","aaaa vvvv cccc 320x480"),
  label  = c("Watermelon","Vanilla","Default","Default")
)
Run Code Online (Sandbox Code Playgroud)

r

3
推荐指数
1
解决办法
1868
查看次数

使用plotly r 的多折线图

我有一个数据框,我试图使用plotly作为多折线图来绘制它。下面是数据框的样子:

  Month_considered pct.x pct.y   pct
   <fct>            <dbl> <dbl> <dbl>
 1 Apr-17            79.0  18.4  2.61
 2 May-17            78.9  18.1  2.99
 3 Jun-17            77.9  18.7  3.42
 4 Jul-17            77.6  18.5  3.84
 5 Aug-17            78.0  18.3  3.70
 6 Sep-17            78.0  18.9  3.16
 7 Oct-17            77.6  18.9  3.49
 8 Nov-17            77.6  18.4  4.01
 9 Dec-17            78.5  18.0  3.46
10 Jan-18            79.3  18.4  2.31
11 2/1/18            78.9  19.6  1.48
Run Code Online (Sandbox Code Playgroud)

当我迭代绘制多条线时,下面是使用的代码。

colNames <- colnames(delta)
p <-
  plot_ly(
    atc_seg_master,
    x = ~ Month_considered,
    type = 'scatter',
    mode …
Run Code Online (Sandbox Code Playgroud)

r dataframe plotly r-plotly

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

如何让用户名登录到 Shinyapps.io 上托管的闪亮应用程序

我正在开发一个使用书签的闪亮应用程序。因此,当在 Shinyapps.io 上托管此应用程序时,我不希望其他用户看到我使用用户登录所做的书签。我尝试使用,User = Sys.getenv("LOGNAME"))但它总是将用户名返回为 Shiny。

shiny shinyapps

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

URL 书签 R Shiny

我有一个带有多个标签的闪亮应用程序。每个选项卡都有数据表,绘图图表。在一个选项卡中,我尝试使用 URL 书签功能。当我将此书签用作单独的闪亮选项卡时,我可以单击带有书签的 URL,它会进入书签状态。然而,在这个更大的应用程序中,当我使用相同的代码时,URL 很长并且不会重定向到书签状态。这是带书签的 URL 的样子

library(shiny)
library(ggplot2)
library(DT)
library(shinyjqui)
library(shinydashboard)
library(shinydashboardPlus)
library(data.table)

ui <- navbarPage(
  "Navbar!",
  tabPanel("Plot",
           sidebarLayout(
             sidebarPanel(radioButtons(
               "plotType", "Plot type",
               c("Scatter" = "p", "Line" = "l")
             )),
             mainPanel(plotOutput("plot"))
           )),
  tabPanel(
    "Summary",
    fluidPage(
      plotOutput("bookmarkplot"),
      sliderInput("n", "Number of observations", 1, nrow(faithful), 100),
      fluidRow(column(
        2,
        textInput(
          inputId = "description",
          label = "Bookmark description",
          placeholder = "Data Summary"
        )
      ), column(2, bookmarkButton(id = "bookmarkBtn"))),
      DT::dataTableOutput("urlTable", width = "100%"),
      tags$style(type = 'text/css', "#bookmarkBtn { width:100%; margin-top: 25px;}")
    )
  ),
  navbarMenu(
    "More", …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

将已编辑的数据表值插入闪亮的应用程序中

我试图了解如何使用已编辑数据表中的值并进行一些计算。

我有一个默认加载的数据框。当您单击“运行”时,它将根据输入值更新表。

我希望用户在表中手动编辑值,然后单击“运行”。接下来,我希望该应用程序在数据表中获取已编辑的值,运行一些计算并更新该表。这样,用户可以在表上动态查看其输入结果。

library(shiny)
library(DT)
library(dplyr)

#### Module 1 renders the first table
tableMod <- function(input, output, session, modelRun,modelData,budget){

  output$x1 <- DT::renderDataTable({
    modelRun()
    isolate(
      datatable(
        modelData %>% 
          mutate(New_Membership  = as.numeric(Modified * 0.01)*(budget())),
        selection = 'none', editable = TRUE
      )
    )
  })
  observeEvent(input$x1_cell_edit, {
    df[input$x1_cell_edit$row,input$x1_cell_edit$col] <<- input$x1_cell_edit$value
  })
}
tableUI <- function(id) {
  ns <- NS(id)
  dataTableOutput(ns("x1"))
}

ui <- function(request) {
  fluidPage(
    tableUI("opfun"),
    numericInput("budget_input", "Total Forecast", value = 2),
    actionButton("opt_run", "Run")
  )
}
server <- function(input, output, session) {

  df …
Run Code Online (Sandbox Code Playgroud)

r shiny datatables-1.10 dt

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

使用Fluidrow和column的闪亮应用存在溢出问题

我在闪亮的应用程序中使用流畅的行和列布局。当我减小屏幕尺寸时,两列中的元素会重叠。如果它们是两个不同的列,并且使用流体行,则内容不应重叠。下面是代码。我有两列,宽度分别为4和8。它们在正常的屏幕尺寸下似乎工作正常,但是一旦我最小化窗口,它们就会重叠。

library(shiny)
library(shinyjs)

ui <- navbarPage(
  "Bootstrap scrollspy on multiple tabs",
  id = "navbar",
  header = div(
    useShinyjs(),
    extendShinyjs("www/app-shinyjs.js", functions = c("updateScrollspy")),
    includeCSS("www/app.css"),
    includeScript("https://cdnjs.cloudflare.com/ajax/libs/jquery-scrollTo/1.4.3/jquery.scrollTo.min.js")
  ),

  # tab 1 contains 4 sections and a scrollspy on the left with text
  tabPanel(
    "tab1",
    div(id = "tab1-content",
        fluidRow(
          column(
            4,
            div(
              id = "tab1-scrollspy",
              class = "potential-scrollspy",
              tags$ul(
                class = "nav nav-pills nav-stacked",
                tags$li(tags$a(href = "#section1-1", "Section 1-1")),
                tags$li(tags$a(href = "#section1-2", "Section 1-2")),
                tags$li(tags$a(href = "#section1-3", "Section 1-3")),
                tags$li(tags$a(href = "#section1-4", "Section 1-4")) …
Run Code Online (Sandbox Code Playgroud)

css r shiny

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

标签 统计

r ×8

shiny ×7

bar-chart ×1

css ×1

d3.js ×1

dataframe ×1

datatables-1.10 ×1

dt ×1

label ×1

plotly ×1

r-markdown ×1

r-plotly ×1

shinyapps ×1