2017-11-11 10 views

答えて

1

入力が仕様に準拠していることが妥当なシナリオでは問題ありません。特に小規模なユーザー向けのパッケージでは、入力が変化しないときに非常に一般的な関数を開発するのに多くの時間を費やすことは意味がありません。

今後の機能の一般性を拡張する必要がある場合は、(a)関数のパラメータに他の変数名を受け入れるか、現在の名前のデフォルトを使用するか、(b)formulasのようなもっと野心的なものを考えてください。

変数がハードコードされている場合は、checkmateのようなものを使用することを検討してください。あなたはstop()でより良いコンテクストをユーザに提供できますが、私はより小さいオーディエンスのためにチェックメイトを好みます。

lm_nonmissing_only <- function(d, predictor_name="x") { 
    checkmate::assert_numeric(d[[predictor_name]], any.missing = F) 
    checkmate::assert_numeric(d$y    , any.missing = F) # This variable name is still hard-coded 

    lm(d$y ~ d[[predictor_name]]) 
} 
関連する問題