我不确定如何为包含magrittr pipe(%>%)的内容编写包装函数。我正在尝试创建一个包装函数,它返回addPolyline()
,addPolygon()
或addCircleMarkers()
,具体取决于图层类型,但我没有成功。似乎答案将出现在哈德利的高级材料中,但最有可能的是它超越了我的脑海。举个简单的例子,我如何制作类似以下示例的内容:
library(leaflet)
wrapper <- function() {
myfunc <- function() {addPolylines(data = leaflet::atlStorms2005)}
return(myfunc)
}
# I want this
leaflet() %>% addTiles() %>% addPolylines(data = leaflet::atlStorms2005)
# but I need a wrapper function
leaflet() %>% addTiles() %>% wrapper()
答案 0 :(得分:0)
您似乎需要稍微修改包装函数并在管道中使用%>% wrapper()()
。
library(leaflet)
wrapper <- function() {
myfunc <- function(.) {addPolylines(., data = leaflet::atlStorms2005)}
return(myfunc)
}
# I want this
leaflet() %>% addTiles() %>% addPolylines(data = leaflet::atlStorms2005)
# but I need a wrapper function
leaflet() %>% addTiles() %>% wrapper()()
答案 1 :(得分:0)
您似乎不需要返回函数的函数。你只需要一个可以调用其他函数的函数。
wrapper <- function(x) {
x %>% addPolylines(data = leaflet::atlStorms2005)
}
leaflet() %>% addTiles() %>% wrapper()