Bağımsız değişkenlerin önceden tanımlanmış birkaç değerden (varsayılan değerlerden biri) veya özel bir karakter vektöründen biri olabileceği bir R işlevine sahip olduğumu varsayalım. Bunu sihirli değer isimlerine veya başka bir bayrağa dayanmadan nasıl uygulamalıyım?İşlev varsayılan bağımsız değişkenleri ve adlandırılmış değerler
#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')
...
}
Bunu yazdıktan sonra, "CORE" veya "ALL" seçenekleri için bir şey isteyip istemediğinizden emin olabilirsiniz veya isimlerin iki vektörünü bir yere saklamak isteyip istemediğinizden emin değilim. Cevabım, ilkini ele alıyor. Q. –
unvanını okurken düşündüğüm şey, foo'yu ("3rdRate") kabul etmem gerekiyor. Temel olarak, bu tür önceden tanımlanmış alt kümeleri uygulamak için sözleşmenin ne olduğunu merak ediyorum. –
@Gavin 'Üyeler <- 'CORE'' yapmak zorunda değilsiniz:' match.arg() 'içinde' 'some.ok = T' seçeneğini ayarlarsanız. Sadece birinciyle eşleşecek. Veya sadece 'match.arg (" CORE ")' seçenekleri belirtmeden aynısını yapar. Uyarlama, sadece veri çerçevesi sabitinin paket içinde uyarlanmasını gerektirdiğinden, fonksiyondaki tüm seçenekleri belirtmemeyi seçtim. Aksi takdirde yeni bir kategori eklemek istiyorsanız hem veri çerçevesini hem de işlevi uyarlamanız gerekir. Sanırım bir tasarım meselesi. Ayrıca, try yapısını kullanarak OP'nin sorduğu gibi bir vektörün belirtilmesine izin verir. –