R que R

Data Wrangling: Operativa con vectores

Thu, Jul 2, 2020
R Data Wrangling
#vector #name


¿Cómo podemos asignar nombres a un vector?



Pongamos que tenemos un vector que incluye un conjunto de valores para un grupo de personas. Pongamos que tenemos los siguientes pesos en kilogramos de siete personas:



peso <- c(70, 56, 83, 79, 67, 63, 92)


En primer lugar, conviene comprobar si el vector con el que estamos trabajando tiene ya nombres asignados. Para ello utilizamos la función names()



names(peso)
## NULL


El resultado es NULL debido a que no existen nombres asignados al vector peso. Para asignar nombres a dicho vector realizaremos la siguiente operativa. Téngase en cuenta que el orden asignado debe corresponder con el orden en el que se encuentran los valores en el vector.



names(peso) <- c("Rubén", "María", "Carlos", "Miguel", "Pili", "José", "Pepe")


Indicamos de nuevo que nos devuelva nuestro vector para comprobar que se han asignado correctamente los nombres indicados:



peso
##  Rubén  María Carlos Miguel   Pili   José   Pepe 
##     70     56     83     79     67     63     92


Alternativamente podemos preguntar qué atributos tiene nuestro vector de la siguiente forma:



attributes(peso)
## $names
## [1] "Rubén"  "María"  "Carlos" "Miguel" "Pili"   "José"   "Pepe"


Como era de esperar nuestro vector tiene names como único atributo.


Utilizando la misma operativa podemos modificar los nombres previamente indicados. Supongamos que en lugar de Miguel debería indicar Luis. En ese caso:



names(peso) <- c("Rubén", "María", "Carlos", "Luis", "Pili", "José", "Pepe")


y el nuevo vector sería:



peso
##  Rubén  María Carlos   Luis   Pili   José   Pepe 
##     70     56     83     79     67     63     92


Por último, para* eliminar todos los nombres del vector:



names(peso) <- NULL


Comprobamos de nuevo nuestro vector:



peso
## [1] 70 56 83 79 67 63 92


Y el vector resultante es el mismo que teníamos al incio del ejercicio sin atributo alguno:



attributes(peso)
## NULL


¿Cómo podemos seleccionar alguno de los valores del vector?



Conviene explicar brevemente cómo seleccionar valores presentes en un vector. Supongamos por ejemplo que queremos seleccionar el primer valor de nuestro vector. Para ello utilizamos brackets con el valor que nos interesa:



# el primer valor de nuestro vector:
peso[1]
## [1] 70

# el último valor de nuestro vector:
peso[7]
## [1] 92


o supongamos que queremos todos los valores menos el segundo valor



peso[-2]
## [1] 70 83 79 67 63 92


Alternativamente podemos seleccionar aquellos valores que superen un determinado peso (u otra condición que establezcamos)



peso[peso > 70]
## [1] 83 79 92


o también podemos seleccionar los valores según su posición en el vector. Pongamos que nos interesa los pesos que se encuentren en los puestos uno, cuatro, cinco y siete:



peso[c(1,4,5,7)]
## [1] 70 79 67 92


O puede que queramos que nos indique todos los valores menos los que están entre dos posiciones. Por ejemplo todos los valores menos los que se encuentran entre la segunda y la cuarta posición:



peso[-(2:4)]
## [1] 70 67 63 92


Ahora asignemos de nuevo nombres a los valores de nuestro vector, tal y cómo hicimos previamente:



names(peso) <- c("Rubén", "María", "Carlos", "Luis", "Pili", "José", "Pepe")


Pongamos que queremos saber el peso de una de las personas que sabemos están en la lista. En ese caso podemos indicar el nombre entre comillas dentro de los brackets de la siguiente forma:



peso["Carlos"]
## Carlos 
##     83