函数输入用作字符串

亚历克西斯·德拉科波洛斯(Alexis Drakopoulos)
saving_ggplot <- function(name = 'default', plotname = last_plot()) {
  image_name = paste(name, ".png", sep="")
  ggsave(image_name, plot = plotname,
         scale = 1, 
         dpi = 300, limitsize = TRUE)
}

这是我保存ggplot的函数。但是,我一生都无法弄清楚如何将name参数作为字符串使用。

例如,如果有人符文 saving_ggplot(FILENAME, PLOTNAME)

它只会说没有对象FILENAME。在python中,我只能捕获它并将其用作str(),但在R中使用as.charactertoString仍然无法正常工作。


错误

saving_ggplot(weightvsageTEST, weightvsageplot)
Error in paste(name, ".png", sep = "") : 
  object 'weightvsageTEST' not found

使用ggsave成功调用:

ggsave('weightvsage.png', plot = last_plot(),
       scale = 1, 
       dpi = 300, limitsize = TRUE)
andrew_reece

您可以使用substitute()

saving_ggplot <- function(name, plotname) {
  image_name = paste0(substitute(name), ".png") # paste0 removes need for sep arg
  ggsave(image_name, plot = plotname,
         scale = 1, 
         dpi = 300, limitsize = TRUE)
}

saving_ggplot(foo, p) # saves foo.png

或者,如果要保留在tidyverse 准引用语法内,请enexpr()改用:

enexpr(name) # instead of substitute(name)

数据:

N <- 100
df <- data.frame(x=rnorm(n=N), y=rnorm(n=N))
p <- ggplot(df, aes(x,y)) + geom_smooth()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

是否可以将输入用作字符串的调用?

从输入字符串返回 html 的函数

ReactJS:如何传递字符串用作函数名称?

如何在JavaScript或jquery中将字符串用作函数?

当字符串用作numpy.mat()的输入时,某些字符将被忽略

将字符串传递给R函数并将其用作函数中的列名

创建用于动态字符串输入的函数

在Python函数中灵活分割输入字符串

函数输入上的无终止文字字符串

Python函数将变量输入字符串

输入返回正确的字符串,但不运行该函数

将用户输入的字符串转换为数学函数

在函数中将字符串数组作为输入参数传递

调整函数的输入,从字符串到数据框

通过连接字符串构造函数的输入参数

接受裸(来自rlang)或字符串作为函数输入

比较输入的字符串和打印的函数

R:循环函数输入的字符串向量

如何将字符串输入函数?

Matlab(输入为字符串->函数->绘制它)GUI

从输入字符串中检测最后部分的函数

无法从函数中的用户输入返回字符串

如何拆分字符串(输入),并将每个部分用作字典值?

python:如何输入字符串并将其用作查询匹配elasticsearch

如何使用作为字典名称的输入字符串引用字典

使用 make 命令获取字符串输入以用作 C 程序中的主要参数

转换日期格式的字符串以用作字符串

将字符串转换为函数的非字符串输入

在CursorAdapter中将字符串用作_id