R'de isteğe bağlı bağımsız değişkenlerle işlevleri yazmanın "doğru" yolunun ne olduğuyla ilgileniyorum. Zamanla, burada farklı bir yol izleyen birkaç kod parçasına rastladım ve uygun (resmi) bir konum bulamadım Bu konuda.
Şimdiye kadar, böyle isteğe bağlı argümanlar yazdım:
fooBar <- function(x,y=NULL){
if(!is.null(y)) x <- x+y
return(x)
}
fooBar(3) # 3
fooBar(3,1.5) # 4.5
İşlev yalnızca x
sağlanmışsa argümanını döndürür . NULL
İkinci bağımsız değişken için varsayılan bir değer kullanır ve bu bağımsız değişken olmazsa NULL
, işlev iki sayıyı ekler.
Alternatif olarak, işlev şu şekilde yazılabilir (ikinci bağımsız değişkenin adıyla belirtilmesi gerekir, ancak bunun yerine de unlist(z)
tanımlanabilir veya tanımlanabilir z <- sum(...)
):
fooBar <- function(x,...){
z <- list(...)
if(!is.null(z$y)) x <- x+z$y
return(x)
}
fooBar(3) # 3
fooBar(3,y=1.5) # 4.5
Şahsen ben ilk versiyonu tercih ederim. Ancak ikisinde de iyi ve kötü görebiliyorum. İlk sürüm hataya daha az eğilimlidir, ancak ikincisi isteğe bağlı sayıda isteğe bağlı seçeneği dahil etmek için kullanılabilir.
R'de isteğe bağlı bağımsız değişkenler belirtmenin "doğru" bir yolu var mı? Şimdiye kadar, ilk yaklaşıma karar verdim, ancak her ikisi de zaman zaman biraz "hacky" hissedebilir.
xy.coords
Yaygın olarak kullanılan bir yaklaşımı görmek için kaynak koduna bakın.