如何将列表列表中的已计算GGR图按字符串存储在R中?
我已经制作了一系列包含GGP情节的列表。我想对这些对象进行评估,以便尽早缩短绘图时间。我已经收集了要在字符串向量中计算的变量名。此外,我希望在之前保留变量名 我尝试的解决方案是如何将列表列表中的已计算GGR图按字符串存储在R中?,r,ggplot2,lazy-evaluation,R,Ggplot2,Lazy Evaluation,我已经制作了一系列包含GGP情节的列表。我想对这些对象进行评估,以便尽早缩短绘图时间。我已经收集了要在字符串向量中计算的变量名。此外,我希望在之前保留变量名 我尝试的解决方案是lappyeval(as.symbol(“myvarstring”))。据我所知,它对变量求值而不存储求值表达式 将as.symbol(“myvarstring”)添加到base R中的get函数将从字符串中检索对象。例如: get("tbl") # # A tibble: 10 x 2 # x y # <i
lappy
eval(as.symbol(“myvarstring”))。据我所知,它对变量求值而不存储求值表达式
将
as.symbol(“myvarstring”)添加到base R中的get
函数将从字符串中检索对象。例如:
get("tbl")
# # A tibble: 10 x 2
# x y
# <int> <int>
# 1 1 1
# 2 2 2
# 3 3 3
# 4 4 4
# 5 5 5
# 6 6 6
# 7 7 7
# 8 8 8
# 9 9 9
# 10 10 10
应该有用
我相信有更好的方法,这取决于你想对情节做什么的下一步。考虑一下这是否是处理数据的最佳方法。列表可以工作吗?将列表存储在向量中 为什么不将列表存储在一个列表中,而不是依靠技巧从全球环境中获取它们
library(tidyverse)
tbl <- tibble(
x = 1:10,
y = 1:10
)
g <- ggplot(tbl, aes(x, y)) + geom_point()
my_plot_list1 <- list(g,g,g,g,g,g)
my_plot_list2 <- list(g,g,g,g,g,g)
my_plot_list3 <- list(g,g,g,g,g,g)
my_vars <- list(
my_plot_list1,
my_plot_list2,
my_plot_list3
)
lapply(my_vars, function(x) lapply(x, function(y) y))
您是否尝试过get(x)
?get(x)
似乎在没有赋值运算符的情况下执行与eval(as.symbol(x))
大致相同的操作。有没有一种方法可以在您“打印”图形给用户之前提前渲染这些绘图?这很有效!我想?我所有这些的最终目的是(通过load
)将工作环境传递到rmarkdown
文件,以将图形打印到html
文件。我正在处理的图形需要很长时间才能渲染。我的想法是,如果我能早点渲染这些图形。我会创建一个更快运行的rmarkdown
脚本。这是有意义的,但是当您调用-假设-my\u plot\u list1[1]
时,它似乎会在向用户显示之前重新渲染绘图。有没有办法保存渲染的绘图?要保存到文件中,可以使用ggsave(y,file=“myfile.pdf”)
是的,可以将绘图保存到硬盘上,然后使用以下语法将图像导入到Rmarkdown中:![](r filename
),其中filename将表示图像的路径/名称。请参阅编辑。如果您只想保存到变量,请尝试使用函数xlist.files(path=“.”,pattern=“.png”,full.names=TRUE)
可以提供所需的文件列表
lapply(my_vars, FUN = function(x) { get(x)})
library(tidyverse)
tbl <- tibble(
x = 1:10,
y = 1:10
)
g <- ggplot(tbl, aes(x, y)) + geom_point()
my_plot_list1 <- list(g,g,g,g,g,g)
my_plot_list2 <- list(g,g,g,g,g,g)
my_plot_list3 <- list(g,g,g,g,g,g)
my_vars <- list(
my_plot_list1,
my_plot_list2,
my_plot_list3
)
lapply(my_vars, function(x) lapply(x, function(y) y))
x <- "mygeneratedname"
assign(x, g, envir = .GlobalEnv)