Z góry dziękuję i przepraszam, jeśli to pytanie zostało wcześniej odpowiedział - wyglądałem dość szeroko. Mam zestaw danych zawierający wiersz z połączonymi informacjami, w szczególności: nazwa, kod koloru, niektóre wyrażenie funkcji. Na przykład jedną wartością może być:Utwórz listę funkcji z wektora znaków
koszt # FF0033 @ log (x) +6.
Mam cały kod do wyodrębnienia informacji, a ja otrzymuję wektor wyrażeń, które chciałbym przekonwertować na listę rzeczywistych funkcji.
Na przykład:
func.list <- list()
test.func <- c("x","x+1","x+2","x+3","x+4")
gdzie test.func jest wektorem wyrażeń. Chciałbym to:
func.list[[3]]
za równoważne
function(x){x+3}
wiem, że mogę utworzyć funkcję przy użyciu:
somefunc <- function(x){eval(parse(text="x+1"))}
do konwersji wartości znaków do funkcji. Problem pojawia się, gdy próbuję wykonać pętlę, aby utworzyć wiele funkcji. Na przykład coś próbowałem że nie działa:
for(i in 1:length(test.func)){
temp <- test.func[i]
f <- assign(function(x){eval(expr=parse(text=temp))})
func.list[[i]] <- f
}
oparciu o inne stanowisko (http://stats.stackexchange.com/questions/3836/how-to-create-a-vector-of działanie funkcji) próbowałem też tak:
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]))))
}
co daje następujący błąd: błąd w eval (wyrażenie, Środ, enclos): obiekt „x” nie znaleziono
Ostatecznym celem jest podjęcie listy funkcji i zastosowanie funkcji jth do j-tej kolumny elementu data.frame, aby użytkownik skryptu mógł określić sposób normalizowania każdego col umn wewnątrz połączonych informacji podanych przez nagłówek kolumny.
Dzięki !! Działało idealnie. Dodam kod, którego użyłem do wykonania zadania, jako dodatkową odpowiedź dla innych użytkowników, gdy tylko SO pozwoli mi to zrobić. (i przepraszam za wszystkie komentarze/edycje/usunięcia/i cokolwiek - jestem oczywiście nowy w SO) – dayne
@dayne Powiedziałbym, że dostałeś rękę rzeczy w porządku, w porównaniu do przeciętnego zupełnie nowego gościa SO. – joran