2016-08-16 16 views
1

Rのモデル式に項を追加しようとしています。これは、変数名を更新関数に直接入力すると、update()を使用するのは簡単です。ただし、変数名が変数に含まれている場合は機能しません。Rのupdate()の変数を使用して式を更新する

myFormula <- as.formula(y ~ x1 + x2 + x3) 
addTerm <- 'x4' 

#Works: x4 is added 
update(myFormula, ~ . + x4) 
Output: y ~ x1 + x2 + x3 + x4 

#Does not work: "+ addTerm" is added instead of x4 being removed 
update(myFormula, ~ . + addTerm) 
Output: y ~ x1 + x2 + x3 + addTerm 

x4を変数に追加することは、やや複雑な方法で行うことができます。

formulaString <- deparse(myFormula) 
newFormula <- as.formula(paste(formulaString, "+", addTerm)) 
update(newFormula, ~.) 
Output: y ~ x1 + x2 + x3 + x4 

このような追加の手順を必要とせずに直接update()を実行する方法はありますか?私はペースト、解析、その他の通常の機能を試してきましたが、動作しません。例えば

paste0が使用されている場合、出力は

update(myFormula, ~ . + paste0(addTerm)) 
Output: y ~ x1 + x2 + x3 + paste0(addTerm) 

で誰もが)(アップデートで変数を使用する方法に関する推奨事項がありますか?

おかげ

答えて

4

あなたはおそらく行うことができます。

update(myFormula, paste("~ . +",addTerm)) 
関連する問題