依赖于作为函数参数传递的表中的列名是不好的做法吗?

时间:2017-11-11 04:42:40

标签: r conventions

主要谈论R。

依赖于作为函数参数传递的data.frame或tibble中存在的特定列名称是不好的做法吗?或者该函数是否也接受相关的列名作为参数?

是否有任何广泛使用的图书馆遵循此惯例?

1 个答案:

答案 0 :(得分:1)

我认为在预期输入符合规范的情况下,这是正常的。特别是在针对小型观众的套餐中,当输入不会发生变化时,花费大量时间开发一般功能是没有意义的。

如果您需要在将来扩展该功能的一般性,请考虑(a)接受函数参数中的其他变量名称,使用当前名称的默认值或(b)更像{{{{{{{ 3}}

无论变量是否为硬编码,请考虑使用类似formulas的内容。您可以使用checkmate为用户提供更好的上下文,但我更喜欢较小的受众。

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]])
}