arnaucube
arnaucube/goKNNPublic Self-hosted repository
reading file and converting to array of dataset
arnaucode idoctnef@openmailbox.org
Wed, 14 Jun 2017 20:20:50 +0200
commit

5fa387c244c7851543b59ddbc86be7d2a741ba10

parent

490c0c049d56a86822f0fe75d5062238735c4fd0

5 files changed, 58 insertions(+), 0 deletions(-)

jump to
A .gitignore

@@ -0,0 +1,1 @@

+datasets
A errorsCheck.go

@@ -0,0 +1,9 @@

+package main + +import "fmt" + +func check(err error) { + if err != nil { + fmt.Println(err) + } +}
A euclideanDistance.go

@@ -0,0 +1,5 @@

+package main + +func euclideanDistance(dataset [][][]int) { + +}
A main.go

@@ -0,0 +1,8 @@

+package main + +import "fmt" + +func main() { + dataset := readDataFile("datasets/poker/poker-hand-training-true.data", "\n", ",") + fmt.Println(dataset) +}
A readDataFile.go

@@ -0,0 +1,35 @@

+package main + +import ( + "io/ioutil" + "strconv" + "strings" +) + +func readDataFile(path string, lineSeparation string, valueSeparation string) [][][]int { + var dataset [][][]int + b, err := ioutil.ReadFile(path) + check(err) + str := string(b) + str = strings.Replace(str, "\r", "", -1) + lines := strings.Split(str, lineSeparation) + for _, v1 := range lines { + params := strings.Split(v1, valueSeparation) + var datasetLine [][]int + var datasetLineEntry []int + var lastLineValue []int + for k2, v2 := range params { + value, err := strconv.Atoi(v2) + check(err) + if k2 < len(params)-1 { + datasetLineEntry = append(datasetLineEntry, value) + } else { + lastLineValue = append(lastLineValue, value) + } + } + datasetLine = append(datasetLine, datasetLineEntry) + datasetLine = append(datasetLine, lastLineValue) + dataset = append(dataset, datasetLine) + } + return dataset +}