2017-02-06 3 views
1

Ich möchte die Zeilen eines Datenframes als Argumente für eine Funktion verwenden. Ich weiß, das kann wie folgt geschehen:Übergeben Sie Zeilen eines Datenrahmens als Argumente an eine Funktion in R mit Spaltennamen, die die Argumente angeben

arg <- expand.grid(n = 100, mean = -1:1, sd = 0:3) 

apply(arg, 1, FUN = function(x) rnorm(x[1], x[2], x[3])) 

Ich möchte jedoch auf eine allgemeinere, elegante Art und Weise die Argumente mit den Spaltennamen eines Datenrahmen geben sie zu spezifizieren (wenn die colum Namen ist keine Option, die Reihenfolge der Spalten wird es auch tun).

Ich möchte nicht in jeder Funktion angeben, welche Spalte auf jedes Argument verweist, wie ich im obigen Beispiel getan habe. Außerdem möchte ich die Werte an Funktionen mit einer beliebigen Anzahl von Argumenten übergeben.

Antwort

1

Wir Map verwenden

do.call(Map, c(f= rnorm, arg)) 
+0

, das hat gut funktioniert! Aber jetzt bin ich in der Situation gestolpert, in der eines der Argumente ein Datenrahmen ist (die Daten, die ich verwenden werde, um das Modell zu schätzen, zum Beispiel). Gibt es dafür eine Arbeit? –

+0

@DPinto Bitte posten Sie als neue Frage – akrun

+0

Ich habe eine neue Frage gestellt. Hier der [link] (http://stackoverflow.com/questions/42112654/r-pass-rows-of-a-data-frame-as-parameters-to-a-function-while-keeping-other-arg) –

Verwandte Themen