public IList <int> GetMissingValueIndices(int columnIndex) { int index = 0; var indices = new List <int>(); if (MissingValueIndicies.ContainsKey(columnIndex)) { return(MissingValueIndicies[columnIndex]); } if (preprocessingData.VariableHasType <double>(columnIndex)) { foreach (var v in preprocessingData.GetValues <double>(columnIndex)) { if (double.IsNaN(v)) { indices.Add(index); } index++; } } else if (preprocessingData.VariableHasType <string>(columnIndex)) { foreach (var v in preprocessingData.GetValues <string>(columnIndex)) { if (string.IsNullOrEmpty(v)) { indices.Add(index); } index++; } } else if (preprocessingData.VariableHasType <DateTime>(columnIndex)) { foreach (var v in preprocessingData.GetValues <DateTime>(columnIndex)) { if (DateTime.MinValue.Equals(v)) { indices.Add(index); } index++; } } else { throw new ArgumentException("column " + columnIndex + " contains a non supported type."); } MissingValueIndicies[columnIndex] = indices; return(MissingValueIndicies[columnIndex]); }
public IList <int> GetMissingValueIndices(int columnIndex) { if (!MissingValueIndicies.ContainsKey(columnIndex)) { if (preprocessingData.VariableHasType <double>(columnIndex)) { MissingValueIndicies[columnIndex] = GetMissingValueIndices <double>(columnIndex); } else if (preprocessingData.VariableHasType <string>(columnIndex)) { MissingValueIndicies[columnIndex] = GetMissingValueIndices <string>(columnIndex); } else if (preprocessingData.VariableHasType <DateTime>(columnIndex)) { MissingValueIndicies[columnIndex] = GetMissingValueIndices <DateTime>(columnIndex); } else { throw new ArgumentException("column " + columnIndex + " contains a non supported type."); } } return(MissingValueIndicies[columnIndex]); }