小编Meg*_*gan的帖子

设置带有闪亮仪表板的框的最小/最大宽度 [R]

我正在使用闪亮的仪表板来显示一些图,我将其放入框中。我发现,在默认宽度下,当应用程序未最大化时,框太小。如果我更改宽度,那么我可以在打开应用程序时使它们达到正确的大小,但是当窗口最大化时它们太大,并且看起来被拉伸,或者至少不必要地大。这是因为宽度参数是动态的,因此会响应屏幕尺寸。

理想情况下,我想保留这个动态元素,但设置框的最小和最大宽度。如果这是不可能的,那么我想设置一个固定的宽度。

可能这需要一些 css 知识,而我缺乏这些知识!

非常精简的示例代码:

library("shiny")
library("shinydashboard")

sidebar <- dashboardSidebar()

body <- dashboardBody(
            fluidRow(
              box(width = 12)
              )
            )


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

server <- function(input, output) {
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

r shiny shinydashboard

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

数据表中的图标闪亮

我正在尝试将一列图标添加到Shiny应用程序中显示的数据表中。本质上,我只想在数据上升时使用向上箭头,而在数据下降时使用向下箭头。但是,我不确定如何显示图标。当我添加仅用于例如的列时icon("arrow-up"),出现以下错误:

错误:类型“列表”未实现默认方法

我可以看到,如果我在Shiny之外尝试这种方法,那么它将显示有关图标的数据,而不是显示图标。

一种选择是使用将其添加为图像的方法-但是感觉会有更直接的方法吗?我也不确定如何使用“真棒字体”图标来做到这一点。

抱歉,如果这是基本内容-我找不到答案!

这是我正在做的简化版本:

library(shiny)
library(shinydashboard)

number_compare <- data.frame(replicate(2, sample(1:100, 10, rep=TRUE)))
number_compare$direction <- ifelse(number_compare$X1 < number_compare$X2, "Up", "Down")
number_compare$direction <- ifelse(number_compare$X1 == number_compare$X2, "", number_compare$direction)


sidebar <- dashboardSidebar()

body <- dashboardBody(
  fluidRow(box(width = 12, solidHeader = TRUE,
               tableOutput("example_table"))
           )
  )

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


server <- function(input, output) {
  output$example_table <- renderTable(number_compare)
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

icons r shiny

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

基于正则表达式高亮显示DT中的单词

使用DT时,我希望能够突出显示所选单词。设置searchHighlight = TRUE接近我想要的设置,但这也会突出显示包含搜索的单词。例如,如果我要搜索“ on”,它也会与“ stone”匹配,突出显示中间的“ on”。

图片示例:

突出显示单词中的单词

我可以这样优化搜索选项regex = TRUE,但是不会突出显示。例如,如果我想使用“ on | in”之类的正则表达式,也是如此。

示例(包括正则表达式):

library(shiny)
library(DT)
library(data.table)

example_data <- data.table(words = c("on", "scone", "wrong", "stone"), 
                           description = c("The word on", "Scone is not on.", "Not on either", "Not here at all"))

ui = shinyUI(fluidPage(

  sidebarLayout(
    sidebarPanel(
      textInput("word_select", label = "Word to search")
      ),
    mainPanel(
      dataTableOutput("word_searched")
    )
  )
))

server = shinyServer(function(input, output, session) {

  output$word_searched <- renderDataTable({
    datatable(
      example_data, 
      options = list(searchHighlight = TRUE, 
                     search = …
Run Code Online (Sandbox Code Playgroud)

r shiny dt

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

避免在 sliderTextInput 中重叠文本

我正在使用sliderTextInputshinyWidgets 包。我无法使标签可读。

首先,它们太小了,我已经使用 css 修复了这个问题。但是,现在标签重叠,因此很难阅读它们。

重叠标签示例

我希望能够执行以下一项或两项操作:

  • 将文本倾斜 45 或 90 度,这样标签就不会重叠。

  • 减少标签数量,以便它们之间有更多空间。我尝试在choices =参数中执行此操作,但这会阻止选择这些选项。我认为这可能与文本而不是数字有关,因此这可能使这成为不可能。

我曾尝试使用sliderInput,但这会带来不同的问题。我几乎用这个答案让它工作了,但另一个问题是我有输入服务器端,作为 a 输入uiOutput,这是我无法改变的,因为它对不同的元素很重要。这种方法不适用于链接的解决方案 - 我最终得到了足够好的标签,但休息时间是每天而不是每月。

这是一个精简的例子:

使用滑块文本输入(标签重叠)

library(shinydashboard)
library(shinyWidgets)
library(shiny)


ui <- dashboardPage(
  dashboardHeader(),
  dashboardSidebar(),
  dashboardBody(
   tags$head(tags$style(type = "text/css", ".irs-grid-text {font-size: 12pt !important;")),
    fluidRow(
      box(uiOutput("month_selection"))
      )
    )
  )

server <- function(input, output) {
  output$month_selection <- renderUI({
    sliderTextInput(
      inputId = "month_select",
      label = "",
      grid = TRUE, 
      force_edges = TRUE,
      choices = seq(from = as.Date("2017-01-01"), to = as.Date("2019-12-31"),by …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

查找data.table中的列表是否在其他列中包含单词

我有一个数据表。列之一是单词列表。我想看看是否有任何一个单词出现在每一行的另一列中。我觉得这应该很容易,但是我没有得到我期望的结果。

困难之处似乎在于该列包括列表,也可能是不一致的(即,不是列出所有相同长度的列表,某些NA,有些仅仅是单词)吗?

示例数据

words_data <- data.table(
  word = c("Lots", "of", "words", "some", "are", "names", 
           "like", "Tom", "and", "Connolly", "or", "Pete", "Dawson"),
  names = c(list(c("Tom", "Connolly")),
            list(c("Tom", "Connolly")),
            list(c("Tom", "Connolly")),
            NA,
            NA,
            NA,
            list(c("Tom", "Connolly")),
            list(c("Tom", "Connolly", "Pete", "Dawson")),
            list(c("Jenny", "Rogers")),
            NA,
            list(c("Pete", "Dawson")),
            "Dawson",
            NA)
)
Run Code Online (Sandbox Code Playgroud)

所需的输出

过滤到行的data.table,其中word可以在namescolumn中找到该列中的值。

因此,在此特定数据集中唯一匹配的将是第8行,该行具有"Tom"单词和c("Tom", "Connolly", "Pete", "Dawson")名称。

使用%in%

这仅返回一行,但我不知道为什么要显示这一行。

> words_data[word %in% names]
     word names
1: Dawson    NA
Run Code Online (Sandbox Code Playgroud)

使用unlist()

这确实标识出单词是名称,因此从根本上建议不列出整个名称列,并检查所有单词,这似乎更接近,但我只希望它检查该行。

> words_data[word %in% unlist(names)]
       word                    names
1: …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

减小图 (R) 的文件大小(plotly)

我使用 ggplotly 在 R 中创建了一个地图。要创建链接,其大小需要为 524kb 或以下,但目前为 1.2Mb。有什么好的方法可以减少文件大小以便我可以导出吗?或者这完全不现实?

r filesize ggplotly r-plotly

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

标签 统计

r ×6

shiny ×4

data.table ×1

dt ×1

filesize ×1

ggplotly ×1

icons ×1

r-plotly ×1

shinydashboard ×1