小编Chr*_*tos的帖子

R Shiny Selectize:如何设置selectizeInput中的最小选项数

我想在Shiny中使用selectizeInput时增加下拉列表的长度.

我知道我可以设置显示的项目的最大数量:options = list(maxOptions = n)但是我如何定义最小数量的选项?

r shiny selectize.js

8
推荐指数
1
解决办法
1318
查看次数

在函数中使用可变数量的组

我想了解是否以及如何使用tidyverse框架实现这一目标.

假设我有以下简单的功能:

my_fn <- function(list_char) {
  data.frame(comma_separated = rep(paste0(list_char, collapse = ","),2), 
         second_col = "test", 
         stringsAsFactors = FALSE)
}
Run Code Online (Sandbox Code Playgroud)

鉴于以下列表:

list_char <- list(name = "Chris", city = "London", language = "R")
Run Code Online (Sandbox Code Playgroud)

如果你运行我的功能正常:

my_fn(list_char)
Run Code Online (Sandbox Code Playgroud)

但是,如果我们使用字符向量更改列表的某些元素,我们可以通过dplyr::do以下方式使用该函数来实现以下功能:

list_char_mult <- list(name = c("Chris", "Mike"),
                       city = c("New York", "London"), language = "R")

expand.grid(list_char_mult, stringsAsFactors = FALSE) %>%
  tbl_df() %>%
  group_by_all() %>% 
  do(my_fn(list(name = .$name, city = .$city, language = "R")))
Run Code Online (Sandbox Code Playgroud)

问题是如何编写一个函数,可以为具有可变数量元素的列表执行此操作.例如:

my_fn_generic <- function(list_char_mult) {
  expand.grid(list_char_mult, stringsAsFactors = FALSE) %>%
    tbl_df() %>% …
Run Code Online (Sandbox Code Playgroud)

r function dplyr tidyverse

5
推荐指数
1
解决办法
70
查看次数

R Shiny:以交互方式修改应用程序主题

我试图找到一种从文本输入交互式修改应用程序主题的方法.

这是我的ui.R.的一个例子.

shinyUI(fluidPage(
  tabsetPanel(
    tabPanel("Main"),
    tabPanel("Settings",
      textInput("skin", "Select Skin", value = "bootstrap1.css")
    ), type = "pills", position = "above"
   ),theme = input$skin
  )
)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:"错误:对象'输入'未找到"

作为最后一点,我在app文件夹中创建了一个foler www,其中包含bootstrap1.css和其他css文件.

css r shiny

4
推荐指数
1
解决办法
838
查看次数

R Shiny:renderUI中的表条件格式

在另一篇文章中,假设该表不是renderUI函数的一部分,则回答了相同的问题。

在下面的示例中,我尝试调整相同的解决方案(使用JQuery),我要有条件地格式化的表属于renderUI函数。

    library(shiny)
    library(datasets)

    script <- "$('tbody tr td:nth-child(5)').each(function() {

              var cellValue = $(this).text();

              if (cellValue > 50) {
                $(this).css('background-color', '#0c0');
              }
              else if (cellValue <= 50) {
                $(this).css('background-color', '#f00');
              }
            })"

  shinyServer(function(input, output, session) {

    session$onFlushed(function() {
      session$sendCustomMessage(type='jsCode', list(value = script))
    })

    output$view <- renderTable({
      head(rock, n = 20)
    })

    output$Test1 <- renderUI({
      list(
        tags$head(tags$script(HTML('Shiny.addCustomMessageHandler("jsCode", function(message) { eval(message.value); });'))),
        tableOutput("view")
      )
    })
  })

  shinyUI(fluidPage(

    tabsetPanel(
      tabPanel("Test1",uiOutput("Test1")),
      tabPanel("Test2")
    )
  ))
Run Code Online (Sandbox Code Playgroud)

在此小示例中,条件格式未应用于表

jquery r shiny

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

绑定具有相同名称的列表中的数据帧行

如果已经回答,请提前道歉.我有以下数据帧列表.

 my_list <- list(a = data.frame(a1 = c(1,2), b1 = c(3,4), c1 =c(5,6)),
                 b = data.frame(b1 = c(1,2,3)),
                 a = data.frame(a1 = c(11,21), b1 = c(31,41), c1 =c(51,61)),
                 b = data.frame(b1 = c(12,22)))
Run Code Online (Sandbox Code Playgroud)

如何使用purr使用相同的名称绑定列表中所有数据帧的行?在该示例中,期望的结果是具有两个数据帧a和b的列表.

list(a = bind_rows(data.frame(a1 = c(1,2), b1 = c(3,4), c1 =c(5,6)),
                   data.frame(a1 = c(11,21), b1 = c(31,41), c1 =c(51,61))),
     b = bind_rows(data.frame(b1 = c(1,2)),
                   data.frame(b1 = c(12,22))))
Run Code Online (Sandbox Code Playgroud)

我如何使用bind_rows解决方案来推广具有相同名称的列表元素.谢谢!

r list dataframe purrr tidyverse

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

标签 统计

r ×5

shiny ×3

tidyverse ×2

css ×1

dataframe ×1

dplyr ×1

function ×1

jquery ×1

list ×1

purrr ×1

selectize.js ×1