2016-05-12 11 views
0

Ich habe eine Testfunktion namens testFunc erstellt, die zwei Argumente erwartet.Anwenden einer Funktion mit zwei Argumenten unter Verwendung von Lapply

Jetzt möchte ich lappy verwenden, um diese Funktion auf eine Liste anzuwenden, wobei das Argument y fixiert bleibt.

Betrachten wir eine Testliste, Testliste:

testList<-list(a=c(1,2,3,4,5,5,6),b=c(1,2,4,5,6,7,8)) 

Können wir lapply verwenden TestFunc auf Testliste $ a und $ b Testliste mit dem gleichen Wert von y zu laufen?

habe ich versucht, diesen Aufruf:

lapply(X = testList, FUN = testFunc, someDataFrame) 

Aber ich bin immer die Länge der someDataFrame als die Ausgabe zu bekommen. Fehle ich etwas Offensichtliches?

+0

Warum nicht Sie setzen Ihr 'y' innerhalb der Funktion fest und benutzen nur' x' als Argument? d. h. 'testfunc <- function (x, y = ...) {...}'? – Sotos

+0

@Sotos: Der Code, wie es veröffentlicht ist, erledigt den Job. Aber, ich denke, Tushar will Länge (x) und nrow (y) beide zurückgeben – vasanthcullen

+0

Ja, ich dachte, es hat nicht viel Sinn gemacht ... – Sotos

Antwort

0

Ihre Funktion ändern zu

testFunc<-function(x,y){ 
    return(c(length(x), nrow(y))) 
} 

standardmäßig eine R-Funktion des letzten bewerteten Wert

0

einfachste Art und Weise gibt, eine benannte Variable verwenden:

lapply(X = testList, FUN=testFunc, y=someDataFrame)

Verwandte Themen