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