Funciones match y which
Los datos en R no son directamente relacionales como lo son en una base de datos en SQL. Sin embargo, existen funciones que permitan buscar datos, y manejar relaciones entre objetos de datos.
whichLa función which permite obtener los indices de un vector de modo logico:
Así se pueden extraer resultados de una prueba lógica en un gran vector de datos:
integer(0)
vecLeyNormal[sup3]
numeric(0)
load("../Datos/bog_chinga.RData")
mat_bog_chinga
Canis lupus Felis catus Tramarctos ornatus
Bogotá 3000 1000 0
Chingaza 100 0 50
Odocoileus viginianus
Bogotá 0
Chingaza 200
La función which permite tambien trabajar con arrays con el argumento array.ind
(sup0 <- which(mat_bog_chinga > 0, arr.ind = T))
row col
Bogotá 1 1
Chingaza 2 1
Bogotá 1 2
Chingaza 2 3
Chingaza 2 4
mat_bog_chinga[sup0]
[1] 3000 100 1000 50 200
matchLa función match permite buscar correspondencias entre 2 vectores:
(var <- c("A","A","b","B","Z","E","I"))
[1] "A" "A" "b" "B" "Z" "E" "I"
LETTERS
[1] "A" "B" "C" "D" "E" "F" "G" "H" "I" "J" "K" "L" "M" "N" "O" "P"
[17] "Q" "R" "S" "T" "U" "V" "W" "X" "Y" "Z"
m_var_LET<-match(var,LETTERS)
LETTERS[m_var_LET]
[1] "A" "A" NA "B" "Z" "E" "I"