我正在整理一个我一直在努力工作了近一年的程序包。我有我称之为音节查找函数需要的哈希表。散列表实际上只是一个环境(我认为我不是电脑专家),这是一个查找表。你可以在下面看到我创建它的功能。我有一个数据集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