私のプログラムでは、ネストされたリストを再帰的に調べて、返す全体的なリストに要素を追加しています。細かいところに気をつけないといけないので、そのままでは使えませんunlist
。
formulaPart
式オブジェクトと見なされます。
私のコードは次のとおりです。
parseVariables <- function(formulaPart, myList){
for(currentVar in as.list(formulaPart))
if(typeof(currentVar == 'language'
parseVariables(currentVar, myList)
else
if(! toString(currentVar) %in% c(\\various characters)
list <- c(list, currentVar)
}
関数が必要なときにリストに要素を正しく追加することを確認しました。問題は、再帰によってリストの要素が失われることです。1 つの内部再帰呼び出し中に追加された要素は、別の再帰呼び出しのために保存されません。
これが C++ の場合は、ポインターを使用するだけで済みます。Java についても同様です。ただし、Rでこのエラーを処理する方法がわかりません。