我正在寻找一种方法来连接 quosure 和一个结果是 quosure 的字符串。实际上,如果我使用paste0()and quo_name(),我就可以做到。但我想知道是否有更优雅的替代方案可以在我的包中编写函数。这是一个通用示例:
library(dplyr)
df <- data_frame(
z_1 = 1,
z_2 = 2,
y_1 = 10,
y_2 = 20
)
get_var <- function(.data, var) {
xx = enquo(var)
select(.data, paste0(quo_name(xx), "_1"), paste0(quo_name(xx), "_2"))
}
get_var(df, z)
# A tibble: 1 x 2
z_1 z_2
<dbl> <dbl>
1 1 2
Run Code Online (Sandbox Code Playgroud) 我不确定我是否完全了解创建voronoi多边形的帮助页面。
library(sf)
# function to get polygon from boundary box
bbox_polygon <- function(x) {
bb <- sf::st_bbox(x)
p <- matrix(
c(bb["xmin"], bb["ymin"],
bb["xmin"], bb["ymax"],
bb["xmax"], bb["ymax"],
bb["xmax"], bb["ymin"],
bb["xmin"], bb["ymin"]),
ncol = 2, byrow = T
)
sf::st_polygon(list(p))
}
nc <- st_centroid(st_read(system.file("shape/nc.shp", package="sf")))["BIR79"]
box <- st_sfc(bbox_polygon(nc))
v <- st_voronoi(nc, box)
plot(v)
Run Code Online (Sandbox Code Playgroud)
有解决的办法吗?