goKNN/readDataFile.go
readDataFile.goRaw
1package main
2
3import (
4 "io/ioutil"
5 "strconv"
6 "strings"
7)
8
9func readDataFile(path string, lineSeparation string, valueSeparation string) [][][]int {
10 var dataset [][][]int
11 b, err := ioutil.ReadFile(path)
12 check(err)
13 str := string(b)
14 str = strings.Replace(str, "\r", "", -1)
15 lines := strings.Split(str, lineSeparation)
16 for _, v1 := range lines {
17 params := strings.Split(v1, valueSeparation)
18 var datasetLine [][]int
19 var datasetLineEntry []int
20 var lastLineValue []int
21 for k2, v2 := range params {
22 value, err := strconv.Atoi(v2)
23 check(err)
24 if k2 < len(params)-1 {
25 datasetLineEntry = append(datasetLineEntry, value)
26 } else {
27 lastLineValue = append(lastLineValue, value)
28 }
29 }
30 datasetLine = append(datasetLine, datasetLineEntry)
31 datasetLine = append(datasetLine, lastLineValue)
32 dataset = append(dataset, datasetLine)
33 }
34 return dataset
35}