我正在整理一個我一直在努力工作了近一年的程序包。我有我稱之爲音節查找函數需要的哈希表。散列表實際上只是一個環境(我認爲我不是電腦專家),這是一個查找表。你可以在下面看到我創建它的功能。我有一個數據集DICTIONARY
(約20000字),將在加載包時加載。我也將這個DICTIONARY
傳遞給哈希函數來創建一個新的環境,當包被加載時;就像env <- hash(DICTIONARY)
一樣htis是我現在加載環境的方式。如何在加載包時啓動一個函數,以便爲使用我的包創建這個新環境?在包中包含一個「哈希表」
hash <- function(x, type = "character") {
e <- new.env(hash = TRUE, size = nrow(x), parent = emptyenv())
char <- function(col) assign(col[1], as.character(col[2]), envir = e)
num <- function(col) assign(col[1], as.numeric(col[2]), envir = e)
FUN <- if(type=="character") char else num
apply(x, 1, FUN)
return(e)
}
#currently how I load the environment with the DICTIONARY lookup table
env <- hash(DICTIONARY)
這裏是DICTIONARY
頭,如果它是有幫助的:
word syllables
1 hm 1
2 hmm 1
3 hmmm 1
4 hmph 1
5 mmhmm 2
6 mmhm 2
7 mm 1
8 mmm 1
9 mmmm 1
10 pff 1
很多人可能會想:「這是由用戶來決定是否要加載的環境」。有效的點,但這個包的目標受衆是識字領域的人。在這個領域沒有太多的R用戶,所以我必須儘可能簡單地使用這個東西。只是想擺脫爲什麼我想要這樣做的哲學,在那裏,這樣它就不會成爲爭論的焦點。
預先感謝您。 (PS我已經看了本手冊(LINK),但似乎無法找到關於此主題的任何信息)
編輯: 每安德烈的建議,我認爲它會是這樣的?但我不確定。這是否會在包加載中的所有其他函數和數據集之後加載?這東西有點讓我困惑。
.onLoad <- function(){
env <- hash(DICTIONARY)
}
你看過這裏列出的參考資料嗎? http://stackoverflow.com/a/7297741/602276 – Andrie
不,我沒有感謝參考。 –
我認爲你正在尋找'?.onLoad' – Andrie