R动态命名要在ggplot2中使用的数据帧

R动态命名要在ggplot2中使用的数据帧,r,dynamic,ggplot2,R,Dynamic,Ggplot2,是的,我知道在R中有很多关于动态命名变量的问题,是的,我已经回顾了它们,不,我仍然不能做我想做的事情 我已经创建了五个不同的数据框,每个数据框都保存着从另一个数据框中选择的信息。我想将这些较小的数据帧发送到ggplot。我已经创建了帧,但我似乎无法获得ggplot来解析动态数据帧名称。我尝试了各种版本的assign和as.name 以下是我的截断代码: Alist <- unique(bigdf$initial.A) Blist <- unique(bigdf$initial.B)

是的,我知道在R中有很多关于动态命名变量的问题,是的,我已经回顾了它们,不,我仍然不能做我想做的事情

我已经创建了五个不同的数据框,每个数据框都保存着从另一个数据框中选择的信息。我想将这些较小的数据帧发送到ggplot。我已经创建了帧,但我似乎无法获得ggplot来解析动态数据帧名称。我尝试了各种版本的assign和as.name

以下是我的截断代码:

Alist <- unique(bigdf$initial.A)
Blist <- unique(bigdf$initial.B)

for ( i in Alist ) { 
    for ( j in Blist ) {
        assign( paste0("a", i, "b", j ), bigdf %>%
        filter( initial.A == i, initial.B == j ))
    }
}

Alist
get
应该可以解决您的问题:

for (i in Alist){ 
  for (j in Blist){ 
    png(paste0("a", i, "b", j, ".png"))
    useframe <- paste0("a", i, "b", j)
    ggplot(get(useframe), aes(x = step)) + geom_density()
  }
}

为什么不能将所有数据保存在一起并使用一个方面网格

编辑:


那么列表中会有什么呢?我喜欢使用列表。我看到了如何将数据帧创建和绘图循环在一起。但是循环在每种情况下都会做两到三件事,i和j都命名数据帧并用于选择要进入数据帧的信息,在使用图i和j的情况下,需要命名png,调用相关的数据帧,然后(未显示)也创建标题。我知道列表在每种情况下可能只做一件事,比如调用正确的数据帧,但所有的事情都是这样?@时间,你是绝对正确的,因为我不关心数据帧,它们是达到目的的一种手段,可能会因为整个算法变得麻烦而被分割。让我玩一下你提供的,我会发回的。有没有办法用列表来完成整个过程?好问题。我有四个自变量,我想用两个来做一个刻面网格。所以我需要把另外两个分开。我添加了一种方法来实现这一点,我不知道dplyrI是否存在。我想这正是我想要的,谢谢!
for (i in Alist){ 
  for (j in Blist){ 
    png(paste0("a", i, "b", j, ".png"))
    useframe <- paste0("a", i, "b", j)
    ggplot(get(useframe), aes(x = step)) + geom_density()
  }
}
library(doParallel)
library(data.table)
bigDT <- setDT(bigdf)
setkeyv(bigDT, c("intial.A", "initial.B"))

foreach(i = seq(Alist)) %do% {
  foreach(j = seq(Blist)) %do% {
    x <- bigDT[J(c(Alist[i], Blist[i]))]
    png(paste0("a", i, "b", j, ".png"))
    ggplot(x, aes(step)) + . . .     
  }
}
library(ggplot2)
library(dplyr)
library(magrittr)

plot_data = function(sub_df) {
  filename = 
    sub_df %>%
    use_series(gear) %>%
    first %>%
    sprintf("gear_%s.pdf", .)

  (ggplot(sub_df) +
    aes(x = wt, y = mpg) + 
    geom_point() ) %>%
    ggsave(filename, .)

  data_frame()
}

mtcars %>%
  group_by(gear) %>%
  do(plot_data(.) )