Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将列表列表中的已计算GGR图按字符串存储在R中?_R_Ggplot2_Lazy Evaluation - Fatal编程技术网

如何将列表列表中的已计算GGR图按字符串存储在R中?

如何将列表列表中的已计算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

我已经制作了一系列包含GGP情节的列表。我想对这些对象进行评估,以便尽早缩短绘图时间。我已经收集了要在字符串向量中计算的变量名。此外,我希望在之前保留变量名

我尝试的解决方案是
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将表示图像的路径/名称。请参阅编辑。如果您只想保存到变量,请尝试使用函数
x
list.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)