有没有办法用包从 R 中的多边形中去除孔sf?我也会对包含其他软件包的解决方案感兴趣。这是一个带有两个孔的多边形示例。
library(sf)
outer = matrix(c(0,0,10,0,10,10,0,10,0,0),ncol=2, byrow=TRUE)
hole1 = matrix(c(1,1,1,2,2,2,2,1,1,1),ncol=2, byrow=TRUE)
hole2 = matrix(c(5,5,5,6,6,6,6,5,5,5),ncol=2, byrow=TRUE)
pts = list(outer, hole1, hole2)
(pl1 = st_polygon(pts))
# POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (1 1, 1 2, 2 2, 2 1, 1 1),(5 5, 5 6, 6 6, 6 5, 5 5))
Run Code Online (Sandbox Code Playgroud)
这是图:
plot(pl1, col="red")
Run Code Online (Sandbox Code Playgroud)
我希望能够在一个调用中bar::foo(),能够以编程方式切换包,bar以便相同的语法调用hello::foo().
一个例子:
parentPkg,childPkg1和childPkg2.parentPkg我有一个功能调用childPkg1::foo() foo() 也是一个功能 childPkg2我希望能够parentPkg使用::运算符来调用,foo()但以编程方式切换包名称.就像是:
dummy_pkg_name = ifelse(scenario=="child1", "childPkg1", "childPkg2")
dummy_pkg_name::foo()
Run Code Online (Sandbox Code Playgroud)可能吗?我该如何实现?
一些背景
parentPkg是一个与Web应用程序交互的函数,接收一些请求和数据,并根据场景返回不同统计模型的结果.
每个场景都非常复杂,并非所有内容都可以概括parentPkg.出于这个原因, childPkg1和childPkg2(实际上也有3和4)之类的子包与数据清洗和每个场景的各种替代交易,但回到同一类的值.
这个想法是parentPkg根据场景将包切换到相关的子节点并调用所有必需的函数,而不必为每个子节点编写相同的序列,但只是稍微不同的::调用.
我需要以编程方式将不同的函数应用到不同的列和分组依据,使用data.table.
如果列和函数已知,我会这样做:
library(data.table)
DT = data.table(id = rep(letters[1:3], each=3),
v1 = rep(c(2, 3, 4), each=3),
v2 = rep(c(5, 10, 15), each=3))
DT
#> id v1 v2
#> 1: a 2 5
#> 2: a 2 5
#> 3: a 2 5
#> 4: b 3 10
#> 5: b 3 10
#> 6: b 3 10
#> 7: c 4 15
#> 8: c 4 15
#> 9: c 4 15
DT[, .(v1=mean(v1), v2=sum(v2)), keyby=.(id)]
#> id v1 …Run Code Online (Sandbox Code Playgroud) 我使用深色背景的PyCharm社区版.在Jupyter笔记本中绘图时,标签和轴的单位在深色背景上是黑色的,因此不可读.有没有办法只改变Jupyter笔记本的背景颜色?