Zmienne globalne w R.


Odpowiedzi:


174

Jak assign()pokazuje odpowiedź Christiana , istnieje sposób na przypisanie w globalnym środowisku. Prostszym, krótszym (ale nie lepszym ... trzymaj się przypisania) sposobem jest użycie <<-operatora, tj

    a <<- "new" 

wewnątrz funkcji.


41
To podejście faktycznie nie zapisuje w środowisku globalnym, ale zamiast tego w zakresie nadrzędnym. Czasami zakres nadrzędny będzie taki sam jak środowisko globalne, chociaż w niektórych przypadkach w przypadku wielu funkcji zagnieżdżonych tak nie jest.
LunaticSoul

5
Dlaczego jest to assignpreferowane <<-?
Jasha

4
@Jasha <<-przeszuka łańcuch załączników do środowiska globalnego i przypisze do pierwszej pasującej zmiennej, którą znajdzie. Hipotetycznie, jeśli masz funkcję f()zagnieżdżoną w zamknięciu g()i aistnieje w nim g(), to użycie a <<-in f()spowoduje przypisanie do ain g(), a nie do środowiska globalnego. Jednak często tego właśnie chcesz.
Bob

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.