Changeset 9491:70593c3579bd in orange


Ignore:
Timestamp:
08/24/11 05:27:07 (3 years ago)
Author:
wencanluo <wencanluo@…>
Branch:
default
Convert:
92cc5c56ba1f93319732c3202fde0b1ba9123771
Message:

Add support for sparse Weka ARFF file

File:
1 edited

Legend:

Unmodified
Added
Removed
  • orange/Orange/data/io.py

    r9490 r9491  
    3939            print "ARFF import ignoring:",x 
    4040        if state == 1: 
    41             dd = x.split(',') 
    42             r = [] 
    43             for xs in dd: 
    44                 y = xs.strip(" ") 
    45                 if len(y) > 0: 
    46                     if y[0]=="'" or y[0]=='"': 
    47                         r.append(xs.strip("'\"")) 
     41            if x[0] == '{':#sparse data format, begin with '{', ends with '}' 
     42                r = [None]*len(attributes) 
     43                dd = x[1:-1] 
     44                dd = dd.split(',') 
     45                for xs in dd: 
     46                    y = xs.split(" ") 
     47                    if len(y) <> 2: 
     48                        raise ValueError("the format of the data is error") 
     49                    r[int(y[0])] = y[1] 
     50                data.append(r) 
     51            else:#normal data format, split by ',' 
     52                dd = x.split(',') 
     53                r = [] 
     54                for xs in dd: 
     55                    y = xs.strip(" ") 
     56                    if len(y) > 0: 
     57                        if y[0]=="'" or y[0]=='"': 
     58                            r.append(xs.strip("'\"")) 
     59                        else: 
     60                            ns = xs.split() 
     61                            for ls in ns: 
     62                                if len(ls) > 0: 
     63                                    r.append(ls) 
    4864                    else: 
    49                         ns = xs.split() 
    50                         for ls in ns: 
    51                             if len(ls) > 0: 
    52                                 r.append(ls) 
    53                 else: 
    54                     r.append('?') 
    55             data.append(r[:len(attributes)]) 
     65                        r.append('?') 
     66                data.append(r[:len(attributes)]) 
    5667        else: 
    5768            y = [] 
Note: See TracChangeset for help on using the changeset viewer.