인수가 미리 정의 된 몇 가지 미리 정의 된 값 중 하나 (기본값은 1 개) 또는 사용자 정의 문자 벡터 중 하나가 될 수있는 R 함수가 있다고 가정 해 보겠습니다. 마법 값 이름이나 다른 플래그에 의존하지 않고 어떻게 구현해야합니까?함수의 기본 인수와 명명 된 값
#allow use of predefined subsets or pass their own list
bratPack<-function(members='CORE',...){
if (members=='CORE')
members<-c('Emilio Estevez','Anthony Michael Hall','Rob Lowe','Andrew McCarthy','Demi Moore','Judd Nelson','Molly Ringwald','Ally Sheedy')
else if (members=='ALL')
members<-c('Emilio Estevez','Anthony Michael Hall','Rob Lowe','Andrew McCarthy','Demi Moore','Judd Nelson','Molly Ringwald','Ally Sheedy','James Spader','Robert Downey, Jr.','Jon Cryer', 'John Cusack', 'Kevin Bacon', 'Jami Gertz', 'Mary Stuart Masterson', 'Matthew Broderick', 'Sean Penn', 'Kiefer Sutherland')
...
}
이 글을 쓰면, "CORE"'또는''ALL "'옵션을 원하는지, 또는 두 개의 벡터 이름을 어딘가에 저장하고 싶은지 확실하지 않습니다. 내 대답은 당신의 질문에 대한 제목을 읽을 때 내가 생각했던 것입니다. –
foo ("3rdRate")를 받아 들일 필요가 있습니다. 기본적으로 이러한 유형의 미리 정의 된 하위 집합을 구현하기 위해 규칙이 무엇인지 궁금합니다. –
@Gavin'match - arg()'에'several.ok = T'를 설정하면'구성원 <- 'CORE'할 필요가 없습니다. 그냥 첫 번째 일치합니다. 아니면 간단히'match.arg ("CORE") 옵션을 지정하지 않고 동일합니다. 함수의 모든 옵션을 지정하지 않기로 선택했습니다. 이제 적응은 패키지 내에서 데이터 프레임 상수의 수정 만 필요로하기 때문입니다. 그렇지 않으면 새 범주를 추가하려는 경우 데이터 프레임과 함수를 모두 조정해야합니다. 내가 생각하는 디자인의 문제. 또한 try 구조를 사용하면 OP가 요청한대로 벡터를 지정할 수 있습니다. –