R: creación, listado y eliminación de objetos en la memoria

Uno de los hechos más interesantes sobre R es que lo que se conoce como objetos en R se conocen como variables en muchos otros lenguajes de programación. Dependiendo del contexto, los objetos y las variables pueden tener significados drásticamente diferentes. En todos los lenguajes de programación, las variables proporcionan un medio para acceder a los datos almacenados en la memoria. R no proporciona acceso directo a la memoria de la computadora, sino que proporciona varias estructuras de datos especializadas a las que nos referiremos como objetos. Estos objetos se denominan mediante símbolos o variables. En R, sin embargo, los símbolos son en sí mismos objetos y pueden manipularse de la misma forma que cualquier otro objeto. Esto es diferente de muchos otros idiomas y tiene efectos de gran alcance. Todas las entidades en R se pueden llamar como objetos. Pueden ser arrays, números, strings , listas , vectores , marcos de datos , etc.

Creación de objetos en la memoria

Para hacer cosas útiles e interesantes en R, es necesario asignar valores a los objetos. Para crear un objeto en R, es necesario darle un nombre seguido del operador de asignación <- ( también se puede usar un signo igual, = ), y el valor que se le quiere dar:

x <- 5

<- es el operador de asignación. Asigna valores a la derecha a objetos a la izquierda. Entonces, después de ejecutar x <- 5 , el valor de x es 5. La flecha se puede leer como 5 entra en x.

Reglas de nomenclatura para objetos:

  • Los objetos pueden recibir cualquier nombre, como x, personName o subject_id.
  • Haga que los nombres de los objetos sean explícitos y no demasiado largos.
  • El nombre de los objetos no puede comenzar con un número (2x no es válido, pero x2 sí lo es).
  • R distingue entre mayúsculas y minúsculas (por ejemplo, subject_id es diferente de Subject_id).
  • Hay algunos nombres que no se pueden usar porque son nombres de funciones fundamentales en R (p. ej., si, si no, para, consulte Palabras reservadas en R para obtener una lista completa).
  • En general, incluso si está permitido, es mejor no usar otros nombres de funciones (p. ej., c, T, media, datos, df, pesos, etc.).
  • También es mejor evitar los puntos (.) dentro de un nombre de variable como en my.dataframe. Hay muchas funciones en R con puntos en sus nombres por razones históricas, pero debido a que los puntos tienen un significado especial en R (para métodos) y otros lenguajes de programación, es mejor evitarlos.
  • También se recomienda utilizar sustantivos para nombres de variables y verbos para nombres de funciones.
  • Es importante ser consistente en el estilo del código de uno (dónde pone espacios, cómo nombra las variables, etc.). El uso de un estilo de codificación consistente hace que el código de uno sea más claro de leer para su futuro yo y sus colaboradores.

Ejemplo:

# R program to illustrate
# Creating an object in memory
   
# Numerical object
x = 5
print(x)
   
# String object
name = "Amiya"
print(name)
   
# Vector object
vec1 = c(1, 2, 3)
print(vec1)
  
vec2 = c("A", "B", "C")
print(vec2)
   
# List object
listOfNumber = list(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(listOfNumber)
   
# Data frame object
myDataFrame = data.frame(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(myDataFrame)

Producción:

[1] 5
[1] "Amiya"
[1] 1 2 3
[1] "A" "B" "C"
$Numbers
[1] 1 2 3

$Characters
[1] "A" "B" "C"

  Numbers Characters
1       1          A
2       2          B
3       3          C

Listado de objetos en la memoria

Uno puede listar todos los objetos en su directorio de trabajo usando objects()o ls()función. objects()o ls()la función se puede usar para obtener un vector de strings de caracteres de los nombres de todos los objetos en el entorno.

Ejemplo:

# R program to illustrate
# Listing objects in memory
   
# Numerical object
x = 5
print(x)
   
# String object
name = "Amiya"
print(name)
   
# Vector object
vec1 = c(1, 2, 3)
print(vec1)
  
vec2 = c("A", "B", "C")
print(vec2)
   
# List object
listOfNumber = list(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(listOfNumber)
   
# Data frame object
myDataFrame = data.frame(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(myDataFrame)
   
# Listing objects using object()
cat("Using object()\n")
print(objects())
   
# Listing objects using ls()
cat("Using ls()\n")
print(ls())

Producción:

[1] 5
[1] "Amiya"
[1] 1 2 3
[1] "A" "B" "C"
$Numbers
[1] 1 2 3

$Characters
[1] "A" "B" "C"

  Numbers Characters
1       1          A
2       2          B
3       3          C

Using object()
[1] "listOfNumber" "myDataFrame"  "name"         "vec1"         "vec2"        
[6] "x"           
Using ls()
[1] "listOfNumber" "myDataFrame"  "name"         "vec1"         "vec2"        
[6] "x"           

Uno puede notar que la función objects()o ls()devuelve el resultado en un orden ordenado.

Listado de objetos que satisfacen un patrón particular:

En R también es posible listar objetos que especifican una expresión regular en particular.

Ejemplo:

# R program to illustrate
# Listing objects in memory
   
# Numerical object
x = 5
print(x)
   
# String object
name = "Amiya"
print(name)
   
# Vector object
vec1 = c(1, 2, 3)
print(vec1)
  
vec2 = c("A", "B", "C")
print(vec2)
   
# List object
listOfNumber = list(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(listOfNumber)
   
# Data frame object
myDataFrame = data.frame(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(myDataFrame)
   
# The code below returns all objects
# whose name contains an v
print(ls(pattern = "v"))
   
# The code below returns all objects
# whose name ends with "e"
print(ls(pattern = "e$"))

Producción:

[1] 5
[1] "Amiya"
[1] 1 2 3
[1] "A" "B" "C"
$Numbers
[1] 1 2 3

$Characters
[1] "A" "B" "C"

  Numbers Characters
1       1          A
2       2          B
3       3          C

[1] "vec1" "vec2"
[1] "myDataFrame" "name"  

Eliminación de objetos en la memoria

Uno puede eliminar los objetos en su directorio de trabajo usando rm()o remove()función. rm()o remove()función se puede utilizar para liberar la memoria y limpiar el espacio del entorno.

Ejemplo:

# R program to illustrate
# Deleting objects in memory
  
# Numerical object
x = 5
print(x)
  
# String object
name = "Amiya"
print(name)
  
# Vector object
vec1 = c(1, 2, 3)
print(vec1)
  
vec2 = c("A", "B", "C")
print(vec2)
  
# List object
listOfNumber = list(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(listOfNumber)
  
# Data frame object
myDataFrame = data.frame(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(myDataFrame)
  
# Deleting object x using rm()
rm(x)
  
# Deleting object myDataFrame using remove()
remove(myDataFrame)
  
cat("After deleted following objects listing of the object:\n")
print(ls())

Producción:

[1] 5
[1] "Amiya"
[1] 1 2 3
[1] "A" "B" "C"
$Numbers
[1] 1 2 3

$Characters
[1] "A" "B" "C"

  Numbers Characters
1       1          A
2       2          B
3       3          C

After deleted following objects listing of the object:
[1] "listOfNumber" "name"         "vec1"         "vec2"  

Eliminación de todos los objetos en la memoria

También se pueden eliminar todos los objetos dentro de la memoria simplemente pasando un argumento list = ls()a la función rm()o remove().

Ejemplo:

# R program to illustrate
# Deleting objects in memory
  
# Numerical object
x = 5
print(x)
  
# String object
name = "Amiya"
print(name)
  
# Vector object
vec1 = c(1, 2, 3)
print(vec1)
  
vec2 = c("A", "B", "C")
print(vec2)
  
# List object
listOfNumber = list(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(listOfNumber)
  
# Data frame object
myDataFrame = data.frame(
    "Numbers" = vec1,
    "Characters" = vec2
)
print(myDataFrame)
  
# Deleting all objects using rm()
rm(list = ls())
  
cat("After deleted all objects listing of the object:\n")
print(ls())

Producción:

[1] 5
[1] "Amiya"
[1] 1 2 3
[1] "A" "B" "C"
$Numbers
[1] 1 2 3

$Characters
[1] "A" "B" "C"

  Numbers Characters
1       1          A
2       2          B
3       3          C

After deleted all objects listing of the object:
character(0)

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 *