r语言 - 返回图形和数据框架对象



我有以下代码,将返回DAG的图形:

library(dagitty)
library(ggplot2)
dag <- dagitty( "dag {
Y <- X <- Z1 <- V -> Z2 -> Y
Z1 <- W1 <-> W2 -> Z2
X <- W1 -> Y
X <- W2 -> Y
X [exposure]
Y [outcome]
}") 
tidy_dag <- tidy_dagitty(dag, layout = "fr")
return_test <- function(tidy_df) {

tidy_df %>%
ggplot(aes(x = x, y = y, xend = xend, yend = yend)) +
geom_dag_node() +
geom_dag_text() +
geom_dag_edges() +
theme_dag()
}
return_test(tidy_dag)

我想返回数据框和图形虽然。我该怎么做呢?本质上,我想返回图像和tidy_dag。或者只是返回一个对象,我可以使用$从中获取一个特定的元素。

1) attribute这将返回绘图,但将日期作为属性。

return_test2 <- function(tidy_df) {

p <- tidy_df %>%
ggplot(aes(x = x, y = y, xend = xend, yend = yend)) +
geom_dag_node() +
geom_dag_text() +
geom_dag_edges() +
theme_dag()
structure(p, dag = tidy_df$dag)
}
out <- return_test2(tidy_dag)
plot(out)
attr(out, "dag") # dag

它的一种变体是使用this作为结构语句返回带有plot的日期作为属性。

structure(tidy_df$dag, plot = p)
<<p>2)列表/strong>或者返回一个包含plot和dag组件的列表。这是
return_test3 <- function(tidy_df) {

p <- tidy_df %>%
ggplot(aes(x = x, y = y, xend = xend, yend = yend)) +
geom_dag_node() +
geom_dag_text() +
geom_dag_edges() +
theme_dag()
list(plot = p, dag = tidy_df$dag)
}
out <- return_test3(tidy_dag)
plot(out$plot)
out$dag 

相关内容

  • 没有找到相关文章

最新更新