R 获取所选对象的名称

R 获取所选对象的名称,r,plyr,R,Plyr,可能我使用了错误的搜索术语,或者这不太可能: 我用ddply打印出许多图表。在这个函数中,我想创建一个子目录,所有这些绘图都在这个目录中结束 这本身没有问题。但是,我不想将目录名作为额外的输入参数传递,而是希望函数以某种方式读取我所使用的数据帧的名称 到目前为止,我使用这种方法: myplotfunction <- function(x,df_name){ p=ggplot (...) ggsave(file.path(getwd,df_name,paste0(x$

可能我使用了错误的搜索术语,或者这不太可能:

我用ddply打印出许多图表。在这个函数中,我想创建一个子目录,所有这些绘图都在这个目录中结束

这本身没有问题。但是,我不想将目录名作为额外的输入参数传递,而是希望函数以某种方式读取我所使用的数据帧的名称

到目前为止,我使用这种方法:

myplotfunction <- function(x,df_name){
      p=ggplot (...)
      ggsave(file.path(getwd,df_name,paste0(x$name,".png"),plot=p)
}

ddply(mydfIddplyUpon,.(name),myplotfunction,df_name="mydfIddplyUpon")

myplotfunction您可以创建一个包装器函数

nddply <- function(x, var, fun, ...){
  xn <- deparse(substitute(x))
  plyr::ddply(x, var, fun, ..., directory_name = xn)
}

# where fun is your function that needs a directory_name
fun <- function(a, directory_name, ...)
  paste(nrow(a),  directory_name, ...)

nddply(iris, "Species", fun, sep=", from: ")

nddply谢谢!然而,我不确定,如果我真的明白这一点。生成绘图的命令会去哪里?开玩笑?到目前为止,我没有让它工作…经过一些修补和通常的尝试和错误,我得到了它。事实上你解释得很好,我只是昨晚好像很累。再次感谢
nd_ply <- function(x, var, fun, ...){
  xn <- deparse(substitute(x))
  plyr::d_ply(x, var, fun, ..., directory_name = xn)
}

fun <- function(a, directory_name, ...)
  ggsave(paste0(directory_name, unique(a$Species), ".pdf"), 
         ggplot(a, aes_string(x="Sepal.Length", y="Sepal.Width", ...))+ geom_point())

nd_ply(iris, "Species", fun, colour="Sepal.Length")