Foro de debate

Busqueda de datos en una tabla

 
Imagen de David Tarin Bernad
Busqueda de datos en una tabla
de David Tarin Bernad - miércoles, 26 de abril de 2017, 17:22
 

Hola buenas tardes, 

Quiza sea algo trivial la pregunta. Pero me encuentro ante una base de datos bastante amplia y quería buscar un numero determinado de dato (digamos el menor de una columna) y que me devolviese en la fila que se encuentra este dato mínimo de la base de datos buscada.

El valor minimo de la tabla es el 5.

1 10

2 15

3 13

4 5

5 20

Busco una función que me devolviese la fila es decir 4.


Imagen de David Elías
Re: Busqueda de datos en una tabla
de David Elías - jueves, 27 de abril de 2017, 03:13
 



# Creamos un pool de datos.
# Son 20 datos tomados al azar, de los números del 1 al 1000.
VARIABLE <- sample(c(1:1000), 20)
VARIABLE

# Creamos un orden de posicion...
# Que va desde el 1... hasta la cantidad de datos que tengo
ORDEN <- c(1:length(VARIABLE))
ORDEN

# Obtengo el valor minimo de la variable
MINIMO <- min(VARIABLE)
MINIMO

# Comparo cada valor de la variable con el valor minimo...
# Donde el valor de la variable sea el valor del minimo, quedara un TRUE
# Donde el valor de la variable sea distinto al valor minimo, quedara un FALSE
DETEC <- VARIABLE == MINIMO
DETEC

# El objeto ORDEN es un vector, con numeros del 1 a la cantidad de datos
# que tengo.
# El objeto DETEC es un vector, con la misma cantida de elementos, pero en vez de
# numeros tengo "TRUE" y "FALSE".
# Por aca numero de ORDEN hay un TRUE o un FALSE
# La siguiente sentecia, me muestra solo los valores de ORDEN en la posicion
# en que DETEC tiene un TRUE
ORDEN[DETEC]


# En estas posiciones hay un minimo...
# Todo lo que tienes que hacer es cambiar el objeto VARIABLE por la columna
# de tu base de datos o el vector con el que estas trabajando.
# Suerte con eso!
# David Elías

Imagen de Manuel Muñoz Márquez
Re: Busqueda de datos en una tabla
de Manuel Muñoz Márquez - jueves, 27 de abril de 2017, 07:39
 

La función which.min devuelve el índice del elemento mínimo en un vector:

> d<-c(64, 1, 49, 4, 81, 100, 36, 25, 16)
> which.min(d)
[1] 2

Un saludo.