2016-03-07 66 views
2

我需要生成臨時變量名稱,它永遠不會與當前全局環境中的任何現有變量衝突。我如何隨機生成一個唯一的,未使用的對象名稱

變量將存儲我無法在ExcelSi-R(如列表)中一步獲取的數據。

+0

想必這是一個函數內部發生的事情,爲什麼,如果它在全球環境與名稱衝突關係呢? – Gregor

+0

@Gregor問題是,它不會發生在函數內部...使用ExcelSi-R我只能使用'.GlobalEnv' ... –

+0

啊,這很有道理。 (好吧,從你的POV中看出來...不確定它對ExcelSi-R是否有意義...) – Gregor

回答

3

下面是做這件事:

temp.name = function(n=4, avoid = ls()) { 

    tn = paste(sample(letters, n), collapse="") 

    while (tn %in% avoid) { 
    tn = paste(sample(letters, n), collapse="") 
    } 

    tn 
} 

temp.name()