En esta guía se desarrollará la selección de elementos de un vector, también la comprobación si elementos o sub conjuntos pertenecen al vector. Así mismo se desarrollarán los operadores lógicos y por último la edición individual o conjunta de elementos del vector.

SELECCIÓN DE ELEMENTOS.

Lo primero que se hará es definir el vector con el que se trabajará:

x<-c(2,1,3,12,43,43,6,8,62,9,0,5,23,42,4,1,3)
x
##  [1]  2  1  3 12 43 43  6  8 62  9  0  5 23 42  4  1  3

Para poder seleccionar un elemento se usará el comando []. Dentro de el se colocará la posición del elemento (puede ser un vector, incluso). Para mostrarlo a continuación unos ejemplos:

x[4]                # Para seleccionar el cuarto elemento. 
## [1] 12

Al colocar 4 dentro de los corchetes [] le indicamos que nos muestre el elemento de posición 4 del vector x. Que para el caso es el valor de 12.

Un ejemplo adicional para que quede claro:

x[12]               # Para seleccionar el duodécimo elemento.
## [1] 5

Pero como se indicó no sólo se puede colocar números dentro de los corchetes, sino que también se pueden colocar vectores. En el siguiente ejemplo se muestra:

x[3:6]              # Para seleccionar los elementos desde la tercera a la sexta posición.
## [1]  3 12 43 43

Pero si se desea excluir sólo a un elemento y que el resto de elementos se muestren se tendría que usar el -. De la siguiente manera:

x[-2]               # Para seleccionar todos los elementos menos el segundo.
##  [1]  2  3 12 43 43  6  8 62  9  0  5 23 42  4  1  3

Al igual que antes también se puede especificar con un vector:

x[-(3:6)]           # Todos los elementos excepto desde el tercero al sexto.
##  [1]  2  1  6  8 62  9  0  5 23 42  4  1  3

Por último, a mi parecer, uno de los más importantes comandos (porque se usa en varias aplicaciones) length(). Este comando nos indica el tamaño del vector.

length(x)           # Indica el tamaño del vector. 
## [1] 17

Como se puede observar el tamaño del vector es de 17, es decir, tiene 17 elementos.

Entonces, si usamos la sintaxis x[length(x)] nos mostrará el último elemento, ya que length(x) es igual a 17.

x[length(x)]        # Para seleccionar el último elemento.
## [1] 3

Si usted desearía seleccionar el penúltimo elemento sólo tendría que considerar x[length(x)-1].

OPERADORES LÓGICOS.

Al igual que las operaciones aritméticas, las operaciones lógicas tienen una importancia primordial ya que a través de ellas se pueden formar condicionales que nos simplificarán el procesamiento de datos.

En la siguiente tabla se muestra los operadores lógicos más importantes:

OPERADOR LÓGICO SINTAXIS
Igualdad ==
Mayor que >
Menor que <
Mayor igual que >=
Menor igual que <=
Diferente !=
Negación !
y &
o |

A continuación se mostrarán ejemplos para todos los casos:

Se continuará usando el vector x, para el caso de igualdad:

x[x==3]             # Elementos iguales a 3.
## [1] 3 3
x[x==17]            # Elementos iguales a 17.
## numeric(0)

En el primer caso lo que se indica es que muestre o seleccione los elementos que son iguales a 3 del vector x. En el segundo ejemplo, lo mismo pero ahora los que son iguales a 17. Como se puede ver no exite ningún elemento que sea 17 en el vector x por lo que se muestra ## numeric(0), que indica que no existe un elemento con el valor de 17.

Para el caso del operador “mayor que”:

x[x>3]              # Elementos mayores que 3.
##  [1] 12 43 43  6  8 62  9  5 23 42  4
x[x>100]            # Elementos mayores que 100.
## numeric(0)

Al igual que antes se observa el resultado de ## numeric(0), ya que, no existen elementos que sean mayores que 100.

Si se desea usar el operador “menor que”:

x[x<5]              # Elementos menores que 5.
## [1] 2 1 3 0 4 1 3

Aquí muestra todos los elementos que son menores que 5.

En los casos de “mayor igual que” y “menor igual que”, es previble su uso.

# Mayor igual que ">=".

x[x>=8]             # Elementos mayores iguales que 8.
## [1] 12 43 43  8 62  9 23 42
# Menor igual que "<=".

x[x<=8]             # Elementos menores iguales que 8.
##  [1] 2 1 3 6 8 0 5 4 1 3

Si se desea seleccionar los elementos que sean diferentes a un determinado valor se tendrá que usar el comando !=.

x[x!=3]             # Elementos diferentes de 3.
##  [1]  2  1 12 43 43  6  8 62  9  0  5 23 42  4  1

Que muestra todos los elementos que son distintos de 3.

Para el caso de la negación:

x[!x<5]             # Elementos que no son menores que 5.
##  [1] 12 43 43  6  8 62  9  5 23 42

Aquí se especifica que se muestre los elementos que “no” son menores que 5. Fíjese en el símbolo ! que está antes del signo <. Si usa el comando en sentido inverso le saldrá error.

Los siguientes operadores lógicos son los más importantes a la hora de desarrollar condicionales. Es preferible repasarlos para un mejor entendimiento.

El operador lógico & lo que hace es unir dos o más operados lógicos y mostrará como resultado el valor o valores “si y sólo si” se cumplen las dos pruebas lógicas.

x[x>3 & x<10]       # Elementos mayores que 3 y menores que 10.
## [1] 6 8 9 5 4

En este caso, muestra los elementos que son mayores que 3 y a la vez que sean menores que 10.

Para el caso del operador lógico | une también dos o más operadores lógicos, pero que mostrará como resultado el valor o valores si se cumple “una o las dos condiciones” por separado, es decir, estas condiciones no se interponen entre sí.

x[x>3 | x<10]       # Elementos mayores que 3 o menores que 10.
##  [1]  2  1  3 12 43 43  6  8 62  9  0  5 23 42  4  1  3

En este ejemplo, se muestran todos los valores mayores que 3 y a la vez los menores que 10; por eso es que valores como 2 que viola la primera prueba lógica pero cumple la segunda prueba se muestra (no se interponen las pruebas).

Para que quede más claro, observe el siguiente ejemplo. En el que se indica que muestre los elementos diferentes de 0 (sólo un elemento no cumple esa prueba, el cero) y que además sean mayores que 5 (los elementos 1,2,3,4 no cumplen esta prueba, pero si la prueba anterior).

x[x!=0 | x>5]       # Elementos diferentes de 0 o mayores que 5.
##  [1]  2  1  3 12 43 43  6  8 62  9  5 23 42  4  1  3

Al final, el resultado es todos los números excepto el cero, ya que no cumple con ninguna de las dos pruebas por separado.

Con los ejemplos anteriores se puede determinar que elemento(s) pertenecen al vector (siempre y cuando se cumplan determinadas pruebas), pero si uno desea saber la posición de este(os) elemento(s), con lo hecho anteriormente es imposible. Por tanto se tendrá que profundizar un poco más, en la siguiente sección se muestra cómo.

¿CÓMO SABER LA POSICIÓN DE LOS ELEMENTOS DEL VECTOR?

Para responder esta pregunta se usará el comando which(). Al igual que antes dentro, del paréntesis tendrá que digitar la prueba logica.

A continuación unos ejemplos:

which(x==3)         # En qué posiciones se encuentra el elemento 3.
## [1]  3 17

Con el comando which() y la prueba lógica se pidió que se muestre la posición de los elementos del vector x que sean iguales a 3. Este elemento está en la posición 3 y 17.

Un ejemplo adicional, para aclarar dudas.

which(x!=3 & x<5)   # En que posición se encuentran los elementos diferentes de 3 y menores que 5.
## [1]  1  2 11 15 16

En este ejemplo se muestran los resultados de las posiciones de los elementos 0,1,2 y 4.

EDICIÓN INDIVIDUAL O CONJUNTA DE ELEMENTOS.

Para ver un poco más claro las posiciones del vector. Usaremos el comando View() que nos mostrará al vector en formato tabla.

View(x)


Aquí nos podemos dar cuenta que a la posición 5 le corresponde el elemento de valor 43. Si nosotros desearíamos cambiarlo por el de 33 usaríamos la siguiente sintaxis. En donde primero se especificaría la posición deseada y luego colocarel símbolo <- que nos sirve para definir un vector o elemento (también se podría usar =, pruebe y vea que resulta).

x[5]<-33             # Para cambiar el valor del elemento de la posición quinta.
x
##  [1]  2  1  3 12 33 43  6  8 62  9  0  5 23 42  4  1  3

En efecto, el elemento de posición 5 ahora vale 33.

Si se da el caso de querer cambiar a varios elementos, podría usar la sintaxis siguiente:

x[c(1,5)]=x[c(1,5)]+5  # Para sumarle el valor de 5 a los elementos de las posicione 1 y 5.
x
##  [1]  7  1  3 12 38 43  6  8 62  9  0  5 23 42  4  1  3

Lo que se hizo es sumarle 5 al primer y quinto elemento. Pero porque usar doble vez x[c(1,5)], en la primera para indicar las posiciones y en la segunda para indicar que a esas posiciones le sumes 5. Si sólo se pondría 5 sin el x[c(1,5)] cambiarías esas posciones por 5.

Como usted se ha podido dar cuenta para la edición también se puede usar subvectores, incluso puede usar el comando which().

Para muestra un ejemplo.

x[which(x==3)]=x[which(x==3)]+100
x
##  [1]   7   1 103  12  38  43   6   8  62   9   0   5  23  42   4   1 103

En este caso sumamos 100 a las posiciones de los elementos iguales a 3 (posición 3 y 17, como se mostró anteriormente).

Como comentario final, espero haya entendido la diferencia entre = y ==. Cualquier duda puede dejar su comentario o escribirnos al correo.

En la siguiente guía se desarrollará la contrucción de matrices.