r-如何制作renderLeaflet的管道处理函数



我有一个关于在shing+传单中渲染传单的处理问题。由于管道处理(%>%(变得很长,我们希望通过函数使代码紧凑。

一个是带有红色传单的文件。另一个是渲染传单中使用的addAwesomeMarkers。

文件名:ms_method.R

library(shiny)
library(leaflet)
basepath <- "C:/Users/XXXXX/"
source(paste0(basepath,"ms_method_ex.R"),encoding="utf-8")
ui <- fluidPage(

leafletOutput('maps')
)
server <- function(input, output, session) {
output$maps <- renderLeaflet({

leaflet()%>%
addTiles()%>%
setView(lng=139.8,lat=35.7,zoom=12)%>%
# addAwesomeMarkers(
#     lng = c(139.8),
#     lat = c(35.7),
#     )
f1()
}) 
}
shinyApp(ui, server)

f1函数是在外部文件中定义的函数。它由源语句读取。

接下来是在另一个文件中定义的函数。

文件名:ms_method_ex.R

f1 <- function(){
addAwesomeMarkers(
lng = c(139.8),
lat = c(35.7),
)}

这将导致错误。我应该做什么样的处理?如果有人知道,请告诉我。此外,如果你能告诉我一个有帮助的网页,我将不胜感激。

addAwesomeMarkers的第一个参数是map。参见?addAwesomeMarkers

为了使您的函数工作,无论是在管道外,它都需要map参数,即do:

f1 <- function(map) {
addAwesomeMarkers(map,
lng = c(139.8),
lat = c(35.7),
)}

最新更新