r语言 - 依赖作为函数参数传递的表中的列名是否不好



主要谈论R。

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

是否有任何广泛使用的库遵循此约定?

我认为在合理期望输入符合规范的情况下是可以的。 特别是在面向小受众的软件包中,当输入不会变化时,花费大量时间开发非常通用的功能是没有意义的。

如果你将来需要扩展函数的通用性,请考虑(a(接受函数参数中的其他变量名称,默认为当前名称,或者(b(更雄心勃勃的公式。

无论变量是否是硬编码的,请考虑使用类似将死的东西。 您可以使用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]])
}

最新更新