2010-01-12 2 views
0

В WEKA - программное обеспечение для интеллектуального анализа данных для данных MICROARRAY DATA, как я могу удалить избыточные кортежи из существующего набора данных? Код для удаления избыточности должен быть в JAVA.Как удалить избыточные кортежи в данных микрочипов с помощью java-программирования?

т.е., набор данных содержит данные, такие, как

H,A,X,1,3,1,1,1,1,1,0,0,0 
D,R,O,1,3,1,1,2,1,1,0,0,0 
H,A,X,1,3,1,1,1,1,1,0,0,0 
C,S,O,1,3,1,1,2,1,1,0,0,0 
H,A,X,1,3,1,1,1,1,1,0,0,0 

здесь кортежи 1,4,5 являются избыточными.

Код должен вернуть следующий Избыточность REMOVED набор данных ...

H,A,X,1,3,1,1,1,1,1,0,0,0 
D,R,O,1,3,1,1,2,1,1,0,0,0 
C,S,O,1,3,1,1,2,1,1,0,0,0 

ответ

2

Вы можете использовать один из классов, который реализует Set такие как java.util.HashSet.

Вы можете загрузить свой набор данных в набор, а затем извлечь их либо путем преобразования в массив с помощью метода Set.toArray(), либо путем итерации по набору.

Set<Tuple> tupleSet = new HashSet<Tuple>();

  
for (Tuple tuple: tupleList) {  
    tupleSet.add(tuple);  
} 

// now all of your tuples are unique 
for (Tuple tuple: tupleSet) {  
    System.out.println("tuple: " + tuple); 
} 
+3

в дополнение к предложению необходимо также выполнить равных и методы Hashcode из кортежей. в противном случае расчет избыточности будет основываться только на ссылке на объект Tuple – LiorH

Смежные вопросы