Erstellen Sie eine Liste von Funktionen aus einem Zeichenvektor

Vielen Dank im Voraus und Entschuldigung, wenn diese Frage bereits beantwortet wurde - ich habe ziemlich ausführlich gesucht. Ich habe einen Datensatz, der eine Reihe mit verketteten Informationen enthält, insbesondere: Name, Farbcode, einige Funktionsausdrücke. Ein Wert kann beispielsweise sein:

kosten # FF0033 @ log (x) +6.

Ich habe den gesamten Code, um die Informationen zu extrahieren, und am Ende habe ich einen Vektor von Ausdrücken, den ich in eine Liste der tatsächlichen Funktionen umwandeln möchte.

Zum Beispiel:

func.list <- list()
test.func <- c("x","x+1","x+2","x+3","x+4")

Dabei ist test.func der Vektor von Ausdrücken. Was ich möchte ist:

func.list[[3]]

Äquivalent zu sein

function(x){x+3}

Ich weiß, dass ich eine Funktion erstellen kann mit:

somefunc <- function(x){eval(parse(text="x+1"))} 

um einen Zeichenwert in eine Funktion umzuwandeln. Das Problem tritt auf, wenn ich versuche, mehrere Funktionen in einer Schleife auszuführen. Ein Beispiel für etwas, das ich versucht habe und das nicht funktioniert hat:

for(i in 1:length(test.func)){
  temp <- test.func[i]
  f <- assign(function(x){eval(expr=parse(text=temp))})
  func.list[[i]] <- f
}

Basierend auf einem anderen Beitrag (http://stats.stackexchange.com/questions/3836/how-to-create-a-vector-of-functions) habe ich auch Folgendes versucht:

makefunc <- function(y){y;function(x){y}}
for(i in 1:length(test.func)){
   func.list[[i]] <-  assign(x=paste("f",i,sep=""),value=makefunc(eval(parse(text=test.func[i]))))
 }

Was den folgenden Fehler ergibt: Fehler in eval (expr, envir, enclos): Objekt 'x' nicht gefunden

Das letztendliche Ziel besteht darin, die Liste der Funktionen zu übernehmen und die j-te Funktion auf die j-te Spalte des data.frame anzuwenden, sodass der Benutzer des Skripts angeben kann, wie jede Spalte innerhalb der verketteten Informationen im Spaltenkopf normalisiert werden soll.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage