小编nee*_*elp的帖子

在Shiny中保存传单地图

我在Shiny应用程序中创建了一个传单地图.现在我需要一个下载按钮,以便用户可以下载当前显示的地图,包括所有标记,多边形等作为pdf文件.

我找到了这个解决方案如何在R中保存传单地图:如何将R地图中的Leaflet保存为png或jpg文件?

但它在Shiny中如何运作?我保持示例代码简单,但想到它,好像在用户想要将地图保存为pdf之前,通过leafletProxy()对地图进行了大量更改.

这是我的尝试,但它不起作用.

server.R

library(shiny)
library(leaflet)
library(devtools)
install_github("wch/webshot") # first install phantomjs.exe in your directory

library(htmlwidgets)
library(webshot)

server <- function(input, output){

  output$map <- renderLeaflet({
    leaflet() %>% addTiles()
  })

 observe({
    if(input$returnpdf == TRUE){
      m <- leafletProxy("map")
      saveWidget(m, "temp.html", selfcontained = FALSE)
      webshot("temp.html", file = "plot.pdf", cliprect = "viewport")
    }
  })

  output$pdflink <- downloadHandler(
    filename <- "map.pdf",
    content <- function(file) {
      file.copy("plot.pdf", file)
    }
  )
}
Run Code Online (Sandbox Code Playgroud)

ui.R

ui <- fluidPage(
     sidebarPanel(
     checkboxInput('returnpdf', 'output pdf?', FALSE), 
     conditionalPanel(
       condition = "input.returnpdf == …
Run Code Online (Sandbox Code Playgroud)

r leaflet shiny

14
推荐指数
1
解决办法
4141
查看次数

在 Shiny 应用程序启动时更改 RStudio 窗口的大小

我正在使用 RStudio IDE 开发闪亮的应用程序。启动应用程序时,我通常使用 RunApp 按钮:在窗口中运行。这将在具有特定宽度和高度的窗口中打开应用程序。

有没有办法改变这个窗口的宽度,所以每次我启动应用程序时都会在更宽的窗口中显示?

r rstudio shiny

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

为什么在200个步骤(健身房环境MountainCar)之后完成剧集?

在Python中使用OpenAI-gym的MountainCar-v0环境时,经过200个步骤后,完成的值将成立.这是为什么?由于未达到目标状态,因此不应该进行这一集.

import gym
env = gym.make('MountainCar-v0')
env.reset()
for _ in range(300):
    env.render()
    res = env.step(env.action_space.sample())
    print(_)
    print(res[2])
Run Code Online (Sandbox Code Playgroud)

我想运行步骤方法,直到汽车到达标志然后打破for循环.这可能吗?与此类似的东西:

n_episodes = 10
done = False
for i in range(n_episodes):
    env.reset()
    while done == False:
        env.render()
        state, reward, done, _ = env.step(env.action_space.sample())
Run Code Online (Sandbox Code Playgroud)

python openai-gym

7
推荐指数
2
解决办法
3694
查看次数

Shiny DataTable:使用按钮扩展保存完整的data.frame

我正在使用带有Shiny的DataTables.使用按钮扩展,用户可以下载或打印数据表中的数据.但是只下载/打印行的可见部分.我想更改该行为,以便可以下载包含所有行的完整data.frame.这可能是按钮扩展或我是否必须切换到downloadHandler?

library(DT)
library(shiny)

df <- data.frame(a = 1:100, b = 1:100)

ui <- fluidPage(
  dataTableOutput("table")
)

server <- function(input, output){

  output$table <- DT::renderDataTable(df, 
                      extensions = c("Buttons"), 
                      options = list(dom = 'Bfrtip',
                                     buttons = c('copy', 'csv', 'excel', 'pdf', 'print')
                      ))

}

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

r shiny dt

6
推荐指数
1
解决办法
3858
查看次数

在roxygen2 R包文档中插入markdown表

我正在写一个R包,我想在R帮助文件中包含一个表,例如在该@details部分中.我尝试直接包含markdown代码:

#' | Tables        | Are           | Cool  |
#' | ------------- |:-------------:| -----:|
#' | col 3 is      | right-aligned | $1600 |
#' | col 2 is      | centered      |   $12 |
Run Code Online (Sandbox Code Playgroud)

但这并没有给我想要的输出.我已经为整个软件包启用了markdown支持并安装了roxygen2 6.0.1.降价表是否不支持?我必须使用\tabular{}吗?

markdown r roxygen2

6
推荐指数
1
解决办法
427
查看次数

从应用程序内部重新启动闪亮的应用程序(重新加载数据)

我想从应用程序内部重新启动闪亮的应用程序,以便例如global.R中的代码将再次执行(用数据重新加载csv文件)。这是显示我想做什么的一个最小示例:

这个闪亮的应用程序会加载一些坐标数据并在地图上绘制标记。将新标记添加到地图时,新坐标应附加到旧数据并保存为csv文件。然后,应用应重新启动,再次加载data.csv,以便所有标记都显示在地图上。我尝试从此处改编代码:重新启动Shiny Session,但这不起作用。该应用程序将重新启动,但不会重新加载csv文件。

library(shinyjs)
library(leaflet)
library(leaflet.extras)

jsResetCode <- "shinyjs.reset = function() {history.go(0)}"

# data <- data.frame(latitude = 49, longitude = 13)
data <- read.csv2("data.csv") # this should get executed whenever js$reset is called

ui <- fluidPage(
  useShinyjs(),                     
  extendShinyjs(text = jsResetCode),
    leafletOutput("map")
)

server <- function(input, output, session){
  output$map <- renderLeaflet({
    leaflet(data) %>% addTiles()  %>%
      setView(11.5, 48, 7) %>%
      addDrawToolbar() %>% 
      addMarkers()
  })

  data_reactive <- reactiveValues(new_data = data)

  # add new point to existing data and save data as …
Run Code Online (Sandbox Code Playgroud)

r shiny shinyjs

6
推荐指数
1
解决办法
3351
查看次数

带有光泽的传单地图上当前鼠标位置的坐标

我想以闪亮的方式访问传单地图中的当前鼠标位置。使用 Shiny 时,您可以使用 获取点击事件的当前坐标input$MAPID_click,其中包含点击的纬度和经度。同样,我想要input$MAPID_mouseover一个鼠标光标当前纬度和经度的列表。

mapview::addMouseCoordinates(map)在传单地图中显示坐标。它使用 map.latlng.lng 和 map.latlng.lat,但我不知道如何调整代码以返回带有坐标的列表而不是显示它们。

理想情况下,此代码应该可以工作:

library(shiny)
library(leaflet)

ui <- fluidPage(
  leafletOutput("map"),
  br(),
  verbatimTextOutput("out")
)

server <- function(input, output, session) {
  output$map <- renderLeaflet({
    leaflet() %>% addTiles()
  })

  output$out <- renderPrint({
    validate(need(input$map_mouseover, FALSE))
    str(input$map_mouseover)
  })
}

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

javascript r leaflet shiny

6
推荐指数
1
解决办法
3195
查看次数

闪亮:selectizeInput 和 textInput 的组合可能吗?

我想在闪亮的应用程序中有一个 textInput,当用户键入某物时,它会向用户显示来自预定义列表(或向量)的可能自动完成。因此,用户可以单击它并节省时间,但也可以编写不在预定义列表中的文本(与 Google 搜索的工作方式类似)。

这是一个例子。用户可以输入“Ap”,然后点击“Apple”。但是也应该可以输入不在预定义列表中的新输入,例如“Orange”。

Shinysky 与我想要的类似(textInput 中的自动完成,但似乎不允许不在选择向量中的新文本。

library(shiny)
library(shinysky) # install from github
choices = c("Apple", "Banana", "Strawberry")

ui <- fluidPage(
  textInput.typeahead(
    id = "fruit", placeholder="type a fruit name", 
    local = data.frame(fruit = choices, info = c("info1", "info2", "info3")), 
    valueKey = "fruit", 
    tokens = c(1, 2, 3), 
    template = HTML("<p class='repo-language'>{{info}}</p> <p class='repo-name'>{{fruit}}</p> <p class='repo-description'>You need to learn more CSS to customize this further</p>")
    ),
  verbatimTextOutput("value")
)

 server <- function(input, output, session) {
   # typeahead
  observe({
    input$fruit
    showshinyalert(session, "shinyalert3", …
Run Code Online (Sandbox Code Playgroud)

r shiny

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

如何在闪亮的应用程序中折叠sidebarPanel?

我有一个闪亮的应用程序,在navbarPage中的tabPanel内有一个mainPanel和一个sidebarPanel.我需要一个隐藏sidebarPanel的选项,类似于:隐藏在shinydashboard中的侧边栏https://github.com/daattali/shinyjs/issues/43.

actionButton应控制是否显示sidebarPanel或折叠.

这是代码:

library(shiny)
library(shinyjs)

ui <- fluidPage(
  navbarPage("",
             tabPanel("tab",
                      sidebarPanel(
                        useShinyjs()
                      ),

                      mainPanel(actionButton("showSidebar", "Show sidebar"),
                                actionButton("hideSidebar", "Hide sidebar")
                      )
             )
  )
)

server <-function(input, output, session) {
  observeEvent(input$showSidebar, {
    shinyjs::removeClass(selector = "body", class = "sidebarPanel-collapse")
  })
  observeEvent(input$hideSidebar, {
    shinyjs::addClass(selector = "body", class = "sidebarPanel-collapse")
  })
}

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

希望有人可以帮忙:)

r shiny shinyjs

5
推荐指数
2
解决办法
3903
查看次数

curl::curl_fetch_memory(url, handle = handle) 中的错误:无法连接到 127.0.0.1 端口 5000:连接被拒绝

我正在开发一个 R 包,其中包含以下功能:

#' @export
makeEnvironment = function(name) {
  envir = R6::R6Class(
    public = list(
      initialize = function(name) {
        remote.base = "http://127.0.0.1:5000"
        private$client = gym::create_GymClient(remote.base)
        private$instance.id = gym::env_create(private$client, name)
        outdir = "/tmp/random-agent-results"
        gym::env_monitor_start(private$client, private$instance.id, outdir, 
          force = TRUE, resume = FALSE)
        print(gym::env_action_space_info(private$client, private$instance.id))
      }
    ),
    private = list(
      client = NULL,
      instance.id = NULL
    )
  )
  package.path = system.file(package = "reinforcelearn")
  path2pythonfile = paste0(package.path, "/gym_http_server.py")
  system2("python", args = path2pythonfile, stdout = NULL, wait = FALSE)
  envir$new(name)
}
Run Code Online (Sandbox Code Playgroud)

我调用的python脚本可以在这里找到:https : …

r

5
推荐指数
0
解决办法
1677
查看次数

标签 统计

r ×9

shiny ×7

leaflet ×2

shinyjs ×2

dt ×1

javascript ×1

markdown ×1

openai-gym ×1

python ×1

roxygen2 ×1

rstudio ×1