﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	resolution	keywords	cc
701	Muestra aleatoria de un conjunto de variables de un DataSet	imendez	Pedro Gea	"Hola, solicito un método que devuelva una muestra aleatoria de los datos de un conjunto de variables de un DataSet.

Creo que debería tener dos parámetros: el conjunto de variables (para no extraer una muestra de todas las variables del DataSet) y la proporción de datos que se desea que contenga la muestra (número entre 0 y 1). Se podría utilizar el conjunto de variables vacío para indicar que se quieren todas las variables.

Os paso un código que puede servir de base para generar la muestra, y que me habéis pasado vosotros mismos. Nótese que la selección aleatoria de los elementos que formarán la muestra debe ser la misma para todas las variables.

{{{
Set GetRandomSampleIndex( Real sizePopulation, Real sizeSample )
{
  Matrix permIndex = RandPermutation( 1, sizePopulation );
  Matrix sampleIndex = SubCol( permIndex, Range( 1, sizeSample, 1 ) );
  Set result = MatSet( sampleIndex )[1]
};

// la que hay que usar
Matrix SubSampleByRow( Matrix bigMat, Real perc )
{
  Real size = Rows( bigMat );
  Real sampleSize = Floor( size * perc );
  Matrix SubRow( bigMat, GetRandomSampleIndex( size, sampleSize ) )
};

// un test
Set test1 = {
  Real perc = 0.1;
  Real size = 10000000;
  Matrix BigMatrix = Rand( size, 3, 0, 1 );
  Real t0 = Copy( Time );
  Matrix sample = SubSampleByRow( BigMatrix, perc );
  Real t1 = Copy( Time );
  Set [[ sample, Real performance = t1-t0 ]]
}
}}}

Un saludo.

Nota: entiendo que sólo tiene sentido para matrices, no para series.
"	enhancement	new	major	Next	Variables			
