-1
主にRについて関数引数として渡されるテーブルのカラム名に頼るのは悪い習慣ですか?
関数の引数として渡されるdata.frameまたはtibbleに存在する特定の列名に頼っているのは悪い習慣ですか?あるいは、関数は関連する列名を引数として受け入れるべきですか?
この規約に準拠して広く使用されているライブラリはありますか?
主にRについて関数引数として渡されるテーブルのカラム名に頼るのは悪い習慣ですか?
関数の引数として渡されるdata.frameまたはtibbleに存在する特定の列名に頼っているのは悪い習慣ですか?あるいは、関数は関連する列名を引数として受け入れるべきですか?
この規約に準拠して広く使用されているライブラリはありますか?
入力が仕様に準拠していることが妥当なシナリオでは問題ありません。特に小規模なユーザー向けのパッケージでは、入力が変化しないときに非常に一般的な関数を開発するのに多くの時間を費やすことは意味がありません。
今後の機能の一般性を拡張する必要がある場合は、(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]])
}