public void ProcessData(IMatrixData mdata, Parameters param, ref IMatrixData[] supplTables, ref IDocumentData[] documents, ProcessInfo processInfo) { int nameCol = param.GetParam <int>("New column names").Value; List <string> colNames; if (nameCol >= 0) { HashSet <string> taken = new HashSet <string>(); colNames = new List <string>(); foreach (string n in mdata.StringColumns[nameCol]) { string n1 = StringUtils.GetNextAvailableName(n, taken); taken.Add(n1); colNames.Add(n1); } } else { colNames = new List <string>(); for (int i = 0; i < mdata.RowCount; i++) { colNames.Add("Column" + (i + 1)); } } List <string> rowNames = mdata.ColumnNames; mdata.Values = mdata.Values.Transpose(); if (mdata.IsImputed != null) { mdata.IsImputed = mdata.IsImputed.Transpose(); } if (mdata.Quality != null) { mdata.Quality = mdata.Quality.Transpose(); } List <string> stringColumnNames = mdata.StringColumnNames; List <string> categoryColumnNames = mdata.CategoryColumnNames; List <string> numericColumnNames = mdata.NumericColumnNames; List <string> multiNumericColumnNames = mdata.MultiNumericColumnNames; List <string> stringColumnDescriptions = mdata.StringColumnDescriptions; List <string> categoryColumnDescriptions = mdata.CategoryColumnDescriptions; List <string> numericColumnDescriptions = mdata.NumericColumnDescriptions; List <string> multiNumericColumnDescriptions = mdata.MultiNumericColumnDescriptions; List <string[]> stringColumns = mdata.StringColumns; List <string[][]> categoryColumns = GetCategoryColumns(mdata); List <double[]> numericColumns = mdata.NumericColumns; List <double[][]> multiNumericColumns = mdata.MultiNumericColumns; mdata.SetAnnotationColumns(new List <string>(new[] { "Name" }), new List <string>(new[] { "Name" }), new List <string[]>(new[] { rowNames.ToArray() }), mdata.CategoryRowNames, mdata.CategoryRowDescriptions, GetCategoryRows(mdata), mdata.NumericRowNames, mdata.NumericRowDescriptions, mdata.NumericRows, new List <string>(), new List <string>(), new List <double[][]>()); mdata.ColumnNames = colNames; mdata.SetAnnotationRows(stringColumnNames, stringColumnDescriptions, stringColumns, categoryColumnNames, categoryColumnDescriptions, categoryColumns, numericColumnNames, numericColumnDescriptions, numericColumns, multiNumericColumnNames, multiNumericColumnDescriptions, multiNumericColumns); }
public void ProcessData(IMatrixData mdata, Parameters param, ref IMatrixData[] supplTables, ref IDocumentData[] documents, ProcessInfo processInfo) { int nameCol = param.GetParam<int>("New column names").Value; List<string> colNames; if (nameCol >= 0){ HashSet<string> taken = new HashSet<string>(); colNames = new List<string>(); foreach (string n in mdata.StringColumns[nameCol]){ string n1 = StringUtils.GetNextAvailableName(n, taken); taken.Add(n1); colNames.Add(n1); } } else{ colNames = new List<string>(); for (int i = 0; i < mdata.RowCount; i++){ colNames.Add("Column" + (i + 1)); } } List<string> rowNames = mdata.ColumnNames; mdata.Values = mdata.Values.Transpose(); if (mdata.IsImputed != null){ mdata.IsImputed = mdata.IsImputed.Transpose(); } if (mdata.Quality != null){ mdata.Quality = mdata.Quality.Transpose(); } List<string> stringColumnNames = mdata.StringColumnNames; List<string> categoryColumnNames = mdata.CategoryColumnNames; List<string> numericColumnNames = mdata.NumericColumnNames; List<string> multiNumericColumnNames = mdata.MultiNumericColumnNames; List<string> stringColumnDescriptions = mdata.StringColumnDescriptions; List<string> categoryColumnDescriptions = mdata.CategoryColumnDescriptions; List<string> numericColumnDescriptions = mdata.NumericColumnDescriptions; List<string> multiNumericColumnDescriptions = mdata.MultiNumericColumnDescriptions; List<string[]> stringColumns = mdata.StringColumns; List<string[][]> categoryColumns = GetCategoryColumns(mdata); List<double[]> numericColumns = mdata.NumericColumns; List<double[][]> multiNumericColumns = mdata.MultiNumericColumns; mdata.SetAnnotationColumns(new List<string>(new[]{"Name"}), new List<string>(new[]{"Name"}), new List<string[]>(new[]{rowNames.ToArray()}), mdata.CategoryRowNames, mdata.CategoryRowDescriptions, GetCategoryRows(mdata), mdata.NumericRowNames, mdata.NumericRowDescriptions, mdata.NumericRows, new List<string>(), new List<string>(), new List<double[][]>()); mdata.ColumnNames = colNames; mdata.SetAnnotationRows(stringColumnNames, stringColumnDescriptions, stringColumns, categoryColumnNames, categoryColumnDescriptions, categoryColumns, numericColumnNames, numericColumnDescriptions, numericColumns, multiNumericColumnNames, multiNumericColumnDescriptions, multiNumericColumns); }