Alcance de la variable en R

En R, las variables son los contenedores para almacenar valores de datos. Son referencias o punteros a un objeto en la memoria, lo que significa que cada vez que se asigna una variable a una instancia, se asigna a esa instancia. Una variable en R puede almacenar un vector, un grupo de vectores o una combinación de muchos objetos R.

Ejemplo :

# R program to demonstrate 
# variable assignment  
  
# Assignment using equal operator
var1 = c(0, 1, 2, 3)
print(var1)
  
# Assignment using leftward operator
var2 <- c("Python", "R")
print(var2)
  
# A Vector Assignment
a = c(1, 2, 3, 4)
print(a)
b = c("Debi", "Sandeep", "Subham", "Shiba")
print(b)
  
# A group of vectors Assignment using list
c = list(a, b)
print(c)

Producción:

[1] 0 1 2 3
[1] "Python" "R"     
[1] 1 2 3 4
[1] "Debi"    "Sandeep" "Subham"  "Shiba"  
[[1]]
[1] 1 2 3 4

[[2]]
[1] "Debi"    "Sandeep" "Subham"  "Shiba"  

Convención de nomenclatura para variables

  • El nombre de la variable en R tiene que ser caracteres alfanuméricos con la excepción del guión bajo (‘_’) y el punto (‘.’) , los caracteres especiales que se pueden usar en los nombres de las variables.
  • El nombre de la variable debe comenzar siempre con un alfabeto.
  • No se permiten otros caracteres especiales como (‘!’, ‘@’, ‘#’, ‘$’) en los nombres de las variables.

Ejemplo:

# R program to demonstrate 
# rules for naming the variables 
  
# Correct naming
b2 = 7 
  
# Correct naming
Amiya_Profession = "Student" 
  
# Correct naming
Amiya.Profession = "Student" 
  
# Wrong naming
2b = 7 
  
# Wrong naming
Amiya@Profession = "Student" 

El código anterior cuando se ejecuta generará un error debido a la denominación incorrecta de las variables.

Error: unexpected symbol in "2b"
Execution halted

Alcance de una variable

La ubicación donde podemos encontrar una variable y también acceder a ella si es necesario se denomina alcance de una variable. Hay principalmente dos tipos de ámbitos variables:

  • Variables globales: Las variables globales son aquellas variables que existen a lo largo de la ejecución de un programa. Se puede cambiar y acceder desde cualquier parte del programa.
  • Variables locales: las variables locales son aquellas variables que existen solo dentro de cierta parte de un programa como una función y se liberan cuando finaliza la llamada a la función.

Variable global

Como sugiere el nombre, se puede acceder a las variables globales desde cualquier parte del programa.

  • Están disponibles a lo largo de la vida de un programa.
  • Se declaran en cualquier parte del programa fuera de todas las funciones o bloques.
  • Declaración de variables globales: las variables globales generalmente se declaran fuera de todas las funciones y bloques. Se puede acceder a ellos desde cualquier parte del programa.
# R program to illustrate  
# usage of global variables  
   
# global variable 
global = 5 
   
# global variable accessed from 
# within a function 
display = function(){
  print(global)
} 
display() 
  
# changing value of global variable  
global = 10 
display()

Producción:

[1] 5
[1] 10

En el código anterior, la variable ‘ global ‘ se declara en la parte superior del programa, fuera de todas las funciones, por lo que es una variable global y se puede acceder a ella o actualizarla desde cualquier parte del programa.

Variable local

Se dice que las variables definidas dentro de una función o bloque son locales para esas funciones.

  • Las variables locales no existen fuera del bloque en el que se declaran, es decir, no se puede acceder a ellas ni utilizarlas fuera de ese bloque.
  • Declarar variables locales: Las variables locales se declaran dentro de un bloque.

Ejemplo:

# R program to illustrate  
# usage of local variables  
  
func = function(){
  # this variable is local to the 
  # function func() and cannot be  
  # accessed outside this function 
  age = 18    
} 
  
print(age)

Producción:

Error in print(age) : object 'age' not found

El programa anterior muestra un error que dice «objeto ‘edad’ no encontrado». La variable edad se declaró dentro de la función “func()”, por lo que es local para esa función y no visible para la parte del programa fuera de esta función.

Para corregir el error anterior, tenemos que mostrar el valor de la edad variable solo desde la función «func()».

Ejemplo:

# R program to illustrate  
# usage of local variables  
  
func = function(){
  # this variable is local to the 
  # function func() and cannot be  
  # accessed outside this function 
  age = 18    
  print(age)
} 
  
cat("Age is:\n")
func()

Producción:

Age is:
[1] 18

Acceso a variables globales

Se puede acceder a las variables globales desde cualquier parte del código, a diferencia de las variables locales que tienen un alcance restringido al bloque de código en el que se crean.

Ejemplo:

f = function() {
   # a is a local variable here
   a <-1
}
f()
  
# Can't access outside the function
print(a) # This'll give error

Producción:

Error in print(a) : object 'a' not found

En el código anterior, vemos que no podemos acceder a la variable «a» fuera de la función, ya que está asignada por un operador de asignación (<-) que convierte a «a» en una variable local. Para realizar asignaciones a variables globales, se utiliza un operador de superasignación (<<-) .

¿Cómo funciona el operador de súper asignación?
Al usar este operador dentro de una función, busca la variable en el marco del entorno principal, si no la encuentra, continúa buscando el siguiente nivel hasta llegar al entorno global. Si aún no se encuentra la variable, se crea y asigna a nivel global.

Ejemplo:

# R program to illustrate
# Scope of variables
  
outer_function = function(){
  inner_function = function(){
    # Note that "<<-" operator here
    # makes a as global variable
    a <<- 10
    print(a)
  }
  inner_function()
  print(a)
}
outer_function()
  
# Can access outside the function
print(a)

Producción:

[1] 10
[1] 10
[1] 10

Cuando se encuentra la instrucción “a <<- 10” dentro de función_interna() , busca la variable “a” en el entorno función_exterior() . Cuando la búsqueda falla, busca en R_GlobalEnv . Dado que «a» tampoco está definido en este entorno global, se crea y asigna allí, al que ahora se hace referencia e imprime desde la función interior () y la función exterior() .

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *