我正在使用闪亮的仪表板来显示一些图,我将其放入框中。我发现,在默认宽度下,当应用程序未最大化时,框太小。如果我更改宽度,那么我可以在打开应用程序时使它们达到正确的大小,但是当窗口最大化时它们太大,并且看起来被拉伸,或者至少不必要地大。这是因为宽度参数是动态的,因此会响应屏幕尺寸。
理想情况下,我想保留这个动态元素,但设置框的最小和最大宽度。如果这是不可能的,那么我想设置一个固定的宽度。
可能这需要一些 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) 我正在尝试将一列图标添加到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) 使用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) 我正在使用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) 我有一个数据表。列之一是单词列表。我想看看是否有任何一个单词出现在每一行的另一列中。我觉得这应该很容易,但是我没有得到我期望的结果。
困难之处似乎在于该列包括列表,也可能是不一致的(即,不是列出所有相同长度的列表,某些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) 我使用 ggplotly 在 R 中创建了一个地图。要创建链接,其大小需要为 524kb 或以下,但目前为 1.2Mb。有什么好的方法可以减少文件大小以便我可以导出吗?或者这完全不现实?