我想在R中绘制一些对象,并将它们保存到我的指南中。要指定每个图形的名称,我需要能够获得要绘制的对象的名称(作为字符串?)。
一个例子是:
setwd("C:/.../mydirectory/")
myname <- myobjectname(myobject) **I want to obtain the string of "myobject"**
png(paste(myname, ".png", sep=""))
myGraphingFunction(myobject)
dev.off()
我试过了:
myobjectname <- function(v1){
deparse(substitute(v1))
}
我想做什么并返回我想要的字符串。然而,当在循环中或在上面的图形情况下使用它时它不起作用。
我有一个带有“月”参数的函数,它将由“1月”或“2月”等代替。使用该功能时:
myobjectname <- function(month)
在循环中,尽管变量月现在是 1月(或其他),但我得到的字符串总是“月”。
汇总:
> deparse(substitute(january))
[1] "january"
> month <- january
> deparse(substitute(month))
[1] "month"
有关第二种情况如何回馈“一月”的任何提示?
由于
答案 0 :(得分:2)
我希望我理解正确:
myfun <- function(month) {
deparse(match.call()$month)
}
january <- 1
myfun(january)
#[1] "january"
关于你的“总结”例子:这是不可能的。
我怀疑你的问题缺乏代表性的例子。你已经减少了太多。
答案 1 :(得分:0)
在month <- "january"
中,您已使用名称'month'“填充”变量,其值为'january'。如果您deparse(substitute())
该变量,则获得该变量的名称,即“月份”。如果你想把这个值作为字符串,只需打印变量,就像他们的评论中建议的@docendodiscimus一样,它将返回已经是字符串的值!
> month <- "january"
> class(month)
[1] "character"
> month
[1] "january"
注意:
您的代码month <- january
(不带引号)没有意义,除非'january'是变量:
> month <- january
Error: object 'january' not found
但:
> january <- "whatever"
> month <- january
> month
[1] "whatever"