Создать список функций из вектора символов
Заранее спасибо, и извините, если на этот вопрос уже был дан ответ - я выглядел довольно широко. У меня есть набор данных, содержащий строку с объединенной информацией, а именно: имя, цветовой код, некоторое выражение функции. Например, одно значение может быть:
Стоимость # FF0033 @ журнал (х) +6.
У меня есть весь код для извлечения информации, и я получаю вектор выражений, которые я хотел бы преобразовать в список реальных функций.
Например:
func.list <- list()
test.func <- c("x","x+1","x+2","x+3","x+4")
где test.func - вектор выражений. Что я хотел бы это:
func.list[[3]]
Быть эквивалентным
function(x){x+3}
Я знаю, что могу создать функцию, используя:
somefunc <- function(x){eval(parse(text="x+1"))}
преобразовать символьное значение в функцию. Проблема возникает, когда я пытаюсь выполнить несколько функций. Для примера чего-то, что я попробовал, это не сработало:
for(i in 1:length(test.func)){
temp <- test.func[i]
f <- assign(function(x){eval(expr=parse(text=temp))})
func.list[[i]] <- f
}
Основываясь на другом посте (http://stats.stackexchange.com/questions/3836/how-to-create-a-vector-of-functions), я также попробовал это:
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]))))
}
Который дает следующую ошибку: Ошибка в eval (expr, envir, enclos): объект 'a'; x & apos; не найдено
Конечная цель состоит в том, чтобы взять список функций и применить j-ю функцию к j-му столбцу data.frame, чтобы пользователь сценария мог указать, как нормализовать каждый столбец в объединенной информации, предоставленной заголовком столбца.