private IndividualPropertiesCache createIndividualPropertiesFromCSV(CsvReader csv, string[] headers) { var individualPropertiesCache = new IndividualPropertiesCache(); //first create a cache of all possible values var covariateCache = new Cache <string, List <string> >(); var parameterValues = new Cache <string, List <double> >(); int fieldCount = csv.FieldCount; int indexIndividualId = 0; for (int i = 0; i < headers.Length; i++) { var header = headers[i]; if (string.Equals(header, Constants.Population.INDIVIDUAL_ID_COLUMN)) { indexIndividualId = i; continue; } if (entryRepresentsParameter(header)) { parameterValues[header] = new List <double>(); } else { covariateCache[header] = new List <string>(); } } while (csv.ReadNextRecord()) { for (int i = 0; i < fieldCount; i++) { if (i == indexIndividualId) { continue; } var header = headers[i]; if (parameterValues.Contains(header)) { parameterValues[header].Add(csv.DoubleAt(i)); } else { covariateCache[header].Add(csv[i]); } } } //now fill the property cache addCovariates(individualPropertiesCache, covariateCache); foreach (var parameterValue in parameterValues.KeyValues) { individualPropertiesCache.SetValues(parameterValue.Key, parameterValue.Value); } return(individualPropertiesCache); }
private IEnumerable <double> getValuesFrom(CsvReader csv, int fieldCount) { var values = new List <double>(); for (int i = PARAMETER_PATH + 1; i < fieldCount; i++) { values.Add(csv.DoubleAt(i)); } return(values); }
private void addValues(QuantityPKParameter pkParameter, CsvReader csv) { if (!_valuesCache.Contains(pkParameter)) { _valuesCache.Add(pkParameter, new List <Tuple <int, float> >()); } var coreUnit = convertValueToCoreValue(pkParameter.Dimension, csv.DoubleAt(VALUE), csv[UNIT]); _valuesCache[pkParameter].Add(new Tuple <int, float>(csv.IntAt(INDIVIDUAL_ID), coreUnit.ToFloat())); }