Funkcja bez nawiasów

W nawiązaniu do funkcji ls bez nawiasów, stworzyłem bardzo przydatną klasę S4 za pomocą, której można wywoływać różne funkcje z różnymi argumentami bez stosowania nawiasów. Obiekt składa się z trzech slotów. Pierwszy o nazwie fun zawiera nazwę wywoływanej funkcji, drugi o nazwie arg zawiera argumenty dla tej funkcji, trzeci o nazwie show decyduje o tym, w jaki sposób wynik funkcji powienien zostać zwrócony. Na samym końcu przekład zastosowania:

setClass("simplefunction",representation(fun="character", arg="list",show="logical"))
setMethod("show","simplefunction",function(object){
	tmp<-NULL
	if(!is.empty(object@arg)) 
		tmp<-do.call(object@fun, object@arg) else
			tmp<-do.call(object@fun)
	if(object@show==TRUE)
		print(tmp) else
			return(tmp)
	}
)

Created by Pretty R at inside-R.org

Wymaga funkcji is.empty()

is.empty<-function(x){
	if(length(x)==0)
		return(TRUE) else
		return(FALSE)
}

Przykład zastosowania:

l@fun<-"ls"
l@arg<-list(pos=1)
l@show<-TRUE
 
l

Created by Pretty R at inside-R.org

admin niedziela, 20 listopad 2011 - 12:10 am | | Blog-R

Brak komentarzy

(pole opcjonalne)
(pole opcjonalne)
Komentarze są wyłączone ze względu na masowy spam!

Moderacja komentarzy w tym serwisie jest aktywna. To oznacza, że twój komentarz nie będzie widoczny na stronie dopóki nie zostanie zaakceptowany przez redaktora.

Zapamiętać informacje o tobie?
Uwaga: Wszystkie znaczniki HTML poza <b> i <i> zostaną usunięte z twojego komentarza. Możesz dodawać linki wpisując po prostu adres URL lub e-mail.