2017-11-11 8 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]]) 
}