私は、ほぼ1年前から取り組んできたパッケージをまとめる過程にあります。音節検索関数に必要なハッシュテーブルと呼ばれるものがあります。ハッシュテーブルは、実際にはルックアップテーブルである単なる環境です(私はコンピューターの専門家ではないと思います)。私が作成した関数を以下に示します。DICTIONARY
パッケージがロードされるときにロードされるデータセット(約20,000ワード)があります。また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)
}