簡體   English   中英

以字符串形式獲取R中的對象名稱

[英]Get object name in R as string

我想在R中繪制許多對象並將其保存到我的目錄中。 要分配每個圖形的名稱,我需要能夠獲取要繪制的對象的名稱(如String?)。

一個例子是:

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))
}

該做什么我想要做的,並返回我想要的字符串。 但是,在循環中或在上述圖表中使用它時,它不起作用。

我有一個參數為“ month”的函數,它將由“ january”或“ february”等代替。EG使用該函數時:

myobjectname <- function(month) 

在一個循環中,盡管變量月份現在是一月 (或其他月份 ),但我得到的字符串始終是“ month”。

總結:

> deparse(substitute(january))
[1] "january"

> month <- january
> deparse(substitute(month))
[1] "month"

關於第二種情況如何退還“一月”的任何暗示?

謝謝

我希望我已正確理解:

myfun <- function(month) {
  deparse(match.call()$month)
}

january <- 1

myfun(january)
#[1] "january"

關於您的“總結”示例:這是不可能的。

我懷疑您的問題缺少代表性的例子。 您已將太多最小化。

month <- "january" ,您已將變量“ name”“填充”為值“ january”。 如果您將變量deparse(substitute()) ,則會得到該變量的名稱,即“ month”。 如果您想將值作為字符串,只需按照其注釋中的@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"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM