R.使用函数调用更改对象属性

时间:2016-11-17 12:14:50

标签: r igraph

g成为igraph个对象。例如,一个简单的

library(igraph)
g <- make_graph(~A-B-C)

如果我多次绘制此图形,布局可能会有所不同。我想以某种方式解决它,所以我提出了这个解决方案:

attr(g, "layout") <- layout.auto(g)
plot_flo <- function(graph, ...){
    plot(graph, layout = attr(graph, "layout"), ...)
}

现在,如果我使用plot_flo绘制图形(flo用于“固定布局”)布局保持不变。 现在我想做的是通过将属性设置为单个函数调用来缩短此行。我的意思是这样的: update_layout(g)。 任何想法如何实现这一目标?

更新 好的,我设法建立了这样一个功能:

update_layout <- function(x){
    name <- deparse(substitute(x))
    paste0(name, "$layout <<- layout_nicely(", name, ")") %>% 
    parse(text = .) %>% 
    eval()
}

不知道它如何处理良好的R代码原则,但似乎有效 不过,谢谢@GaborCsardi的提示,现在不需要额外的绘图功能。

0 个答案:

没有答案