[英]wrapper function; function that returns function
我不確定如何為包含magrittr管道(%>%)的東西編寫包裝函數。 我正在嘗試創建一個包裝函數,該函數根據圖層類型返回addPolyline()
, addPolygon()
或addCircleMarkers()
,但是我沒有成功。 答案似乎將在Hadley的Advanced材料中,但最有可能超過了我。 作為一個簡單的示例,如何使以下示例工作:
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()
似乎您需要稍微修改包裝器功能,並在管道中使用%>% 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()()
似乎不需要返回一個函數的函數。 您只需要一個可以調用其他函數的函數。
wrapper <- function(x) {
x %>% addPolylines(data = leaflet::atlStorms2005)
}
leaflet() %>% addTiles() %>% wrapper()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.