Wątek zablokowany 2014-12-31 13:56 przez dzek69.

Jak uzyskać zmienne globalne w Cranie

1

Witam,

mam problem w programie R tudzież Cran. Faktycznie to skrypt ma pomagać w badaniu mierników porównujących skorelowanie i inne zależności pomiędzy dwoma strumieniami danych... ale nie gmatwajmy. Chcę uzyskać w uproszczeniu taki efekt:


a = 2 			#to chcę jako zmienne globalne
b = c(1:3)		#to chcę jako zmienne globalne
d = matrix(c(1:16), 4,4)	#to chcę jako zmienne globalne

F <- function (x=1){	#potem jakaś funkcja która coś sobie liczy
	a = a+1		#chcę aby zmieniło mi wartości zmiennych tak aby korzystać z wyników poza funkcją
	cat(paste("a", a, "\n"))
	b = b+1
	cat(paste("b", b, "\n"))	#widać że zasysa dane poprawnie i je zmienia ale tylko wewnątrz funkcji
	d = d+1			#ale ich nie nadpisuje
	cat(paste("d", d, "\n"))	
	e = x+1
	cat(paste("e", e, "\n"))

	return (e)
}
F(4)
a
b
d
e

Funkcja sporo liczy i działa, ale na koniec zwraca wyniki końcowe (skalary w wektorze). Jest jednak zapotrzebowanie aby zwracała też wyniki pośrednie, którymi są macierze i wektory różnych rozmiarów - więc nie widzę opcji by to przepisać zgrabnie do data.frame'a. Zmienne globalne by mi załatwiły sprawę ale jak je nadpisać wewnątrz funkcji, gdy (jak mniemam) function tworzy sobie ich kopie na wstępie i na nich działa? Próbowałem znaleźć info w dokumentacji CRAN oraz na zagranicznych forach ale póki co nie trafiłem na satysfakcjonującą odpowiedź. Może ktoś z Was mi pomoże bo sprawa np w C++ błaha a tu mam jakąś zawiechę :/

0

lol ile ja na to czasu straciłem ;/ a wystarczyło skorzystać z <<- zamiast = ... wiedziałem że to musi być coś prostego ;) niemniej dzięki za pomoc bo jakbym nie napisał to pewnie bym dłużej kminił :D

pozdro

1 użytkowników online, w tym zalogowanych: 0, gości: 1