Changeset 1519 for trunk/yat/normalizer/QuantileNormalizer.cc
- Timestamp:
- Sep 21, 2008, 6:35:39 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/yat/normalizer/QuantileNormalizer.cc
r1518 r1519 41 41 assert(data.columns()==result.columns()); 42 42 43 // create a tmp copy 44 utility::Matrix data_copy(data); 45 46 // sort columns in copy 47 for (size_t column=0; column<data_copy.columns(); ++column){ 48 std::sort(data_copy.begin_column(column), data_copy.end_column(column)); 49 } 50 51 // calculate average of each row 52 std::vector<yat::statistics::Averager> averager(data_copy.rows()); 53 for (size_t row=0; row<result.rows(); ++row){ 54 add(averager[row], data_copy.begin_row(row), data_copy.end_row(row)); 55 } 56 57 for (size_t column=0; column<result.columns(); ++column){ 58 std::vector<size_t> index; 59 utility::sort_index(index, data.column_const_view(column)); 60 61 for (size_t row=0; row<data.rows(); ++row) 62 result(index[row], column) = averager[row].mean(); 43 std::vector<std::vector<size_t> > index(data.rows()); 44 for (size_t column=0; column<data.columns(); ++column) 45 utility::sort_index(index[column], data.column_const_view(column)); 46 47 for (size_t rank=0; rank<data.rows(); ++rank) { 48 statistics::Averager a; 49 for (size_t column=0; column<data.columns(); ++column) 50 a.add(data(index[column][rank], column)); 51 double mean = a.mean(); 52 for (size_t column=0; column<data.columns(); ++column) 53 result(index[column][rank], column) = mean; 63 54 } 64 55 }
Note: See TracChangeset
for help on using the changeset viewer.