FoxPro/Visual FoxPro - Muestras aleatorias

 
Vista:

Muestras aleatorias

Publicado por Amartinez (1 intervención) el 08/11/2007 22:18:53
Alguien me puede ayudar a sacra una muestra aleatoria del10 % de una base de datos de personas para elaborar una encuesta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Muestras aleatorias

Publicado por Plinio (7841 intervenciones) el 08/11/2007 22:50:10
CREATE CURSOR misRegistros (campo1 C(20),campo2 C(10))
cantidad_records = 1

SELEC 0
USE tutabla

SELECT tutabla
primero = 1
ultimo= RECCOUNT('tutabla')

DO WHILE cantidad_records <=10
SELECT tutabla
registro_aleatorio = INT((ultimo -primero + 1) * RAND(-1) + primero)
GOTO registro_aleatorio
INSERT INTO misRegistros (campo1,campo2);
VALUES tutabla.campox,tutabla.campoy)

ENDDO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Muestras aleatorias

Publicado por Luighi (105 intervenciones) el 09/11/2007 09:39:11
como estan las cosas, el bucle jamas terminara
ya que la variable cantidad_records se mantendra constante
pero claro, eso se resuelve agregando dentro del bucle el acumulador:
cantidad_records=cantidad_records+1
descuida, cualquiera lo puede olvidar

registro_aleatorio podria devolver dos veces o mas el mismo numero
a menos que se desee encuestar mas de una vez a la misma persona

select tutabla deberia estar antes del bucle
es redundante escribirlo dentro
pues insert mantiene el area de trabajo sobre el cual se trabaja
en este caso tutabla

se desea saber el 10% del total de registros mas no 10 registros
a menos que tutabla tenga solamente 100 registros
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Muestras aleatorias

Publicado por Plinio (7841 intervenciones) el 09/11/2007 11:03:11
Gracias por las observaciones. Lo que pasa que el codigo lo hice en la linea de comandos y no tomé ciertas cosas en cuenta. Si hay que poner el contador obligatoriamente y el DO WHILE hay que acomodarlo a un 10%. Buenas tus observaciones.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar