Exemplo n.º 1
0
        /// <summary>
        /// Parses the data with the types (defined by human) for the BoardGameGeek data
        /// </summary>
        /// <param name="data">One line of data to be parsed.</param>
        /// <param name="names">Names (keys) for each column.</param>
        /// <returns>A DateLine with the parsed content.</returns>
        public static DataLine ParseFixed(string[] data, string[] names)
        {
            DataLine result = new DataLine();

            result.hashDoubles[names[0]] = double.Parse(data[0], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo); //id
            result.hashStrings[names[1]] = data[1];                                                                                                                         //name
            //result.hashStrings["str "+names[2]] = "year_published " + data[2];    //year_published
            result.hashDoubles[names[2]] = double.Parse(data[2]);                                                                                                           //year_published
            result.hashDoubles[names[3]] = double.Parse(data[3], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo); //min_players
            //result.hashStrings["str " + names[3]] = "min_players " + data[3];     //min_players
            result.hashDoubles[names[4]] = double.Parse(data[4], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo); //max_players
            //result.hashStrings["str " + names[4]] = "max_players " + data[4];       //max_players
            //result.hashStrings["str " + names[5]] = "playingtime " + data[5];         //playingtime
            result.hashDoubles[names[5]] = double.Parse(data[5], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);       //playingtime
            result.hashDoubles[names[6]] = double.Parse(data[6], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);       //min_age
            result.hashDoubles[names[7]] = double.Parse(data[7], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);       //users_rated
            result.hashDoubles[names[8]] = double.Parse(data[8], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);       //average_rating
            //result.hashStrings["str " + names[8]] = "average_rating " + data[8];       //average_rating
            result.hashDoubles[names[9]]  = double.Parse(data[9], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);      //rating_stddev
            result.hashDoubles[names[10]] = double.Parse(data[10], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);     //num_owned
            result.hashDoubles[names[11]] = double.Parse(data[11], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);     //num_trading
            result.hashDoubles[names[12]] = double.Parse(data[12], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);     //num_wanting
            result.hashDoubles[names[13]] = double.Parse(data[13], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);     //num_wishing
            result.hashDoubles[names[14]] = double.Parse(data[14], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);     //num_comments
            //result.hashDoubles[names[15]] = ParseDouble(data[15]);          //num_players_best
            //result.hashDoubles[names[16]] = ParseDouble(data[16]);          //num_players_rec
            //result.hashDoubles[names[17]] = ParseDouble(data[17]);          //num_players_notrec
            //result.hashDoubles[names[18]] = Double.Parse(data[18]);         //suggested_age
            result.hashStringArrays[names[19]] = ParseStringArray(data[19], CATEGORY).Select(c => IDtoLabel(c)).ToArray(); //categories
            result.hashStringArrays[names[20]] = ParseStringArray(data[20], MECHANIC).Select(c => IDtoLabel(c)).ToArray(); //mechanics
            //result.hashStringArrays[names[21]] = ParseStringArray(data[21]);//, BOARDGAMEFAMILY); //boardgamefamilies
            //result.hashStringArrays[names[22]] = ParseStringArray(data[22]); //implementation_of
            //result.hashStringArrays[names[23]] = ParseStringArray(data[23]);//, DESIGNER); //designers
            //result.hashStringArrays[names[24]] = ParseStringArray(data[24]);//, ARTIST); //artists
            //result.hashStringArrays[names[25]] = ParseStringArray(data[25]);//, PUBLISHER); //publishers


            return(result);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Parses the data with the types (defined by human) for the BoardGameGeek data
        /// </summary>
        /// <param name="data">One line of data to be parsed.</param>
        /// <param name="names">Names (keys) for each column.</param>
        /// <returns>A DateLine with the parsed content.</returns>
        public static DataLine ParseFixed(string[] data, string[] names)
        {
            DataLine result = new DataLine();
            result.hashDoubles[names[0]] = double.Parse(data[0], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo); 			 //id
            result.hashStrings[names[1]] = data[1];             //name
            //result.hashStrings["str "+names[2]] = "year_published " + data[2];    //year_published
            result.hashDoubles[names[2]] = double.Parse(data[2]);    //year_published
            result.hashDoubles[names[3]] = double.Parse(data[3], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);     //min_players
            //result.hashStrings["str " + names[3]] = "min_players " + data[3];     //min_players
            result.hashDoubles[names[4]] = double.Parse(data[4], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);     //max_players
            //result.hashStrings["str " + names[4]] = "max_players " + data[4];       //max_players
            //result.hashStrings["str " + names[5]] = "playingtime " + data[5];         //playingtime
            result.hashDoubles[names[5]] = double.Parse(data[5], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);         //playingtime
            result.hashDoubles[names[6]] = double.Parse(data[6], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);             //min_age
            result.hashDoubles[names[7]] = double.Parse(data[7], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);             //users_rated
            result.hashDoubles[names[8]] = double.Parse(data[8], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);       //average_rating
            //result.hashStrings["str " + names[8]] = "average_rating " + data[8];       //average_rating
            result.hashDoubles[names[9]] = double.Parse(data[9], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);             //rating_stddev
            result.hashDoubles[names[10]] = double.Parse(data[10], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);           //num_owned
            result.hashDoubles[names[11]] = double.Parse(data[11], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);           //num_trading
            result.hashDoubles[names[12]] = double.Parse(data[12], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);           //num_wanting
            result.hashDoubles[names[13]] = double.Parse(data[13], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);           //num_wishing
            result.hashDoubles[names[14]] = double.Parse(data[14], System.Globalization.NumberStyles.AllowDecimalPoint, System.Globalization.NumberFormatInfo.InvariantInfo);           //num_comments
            //result.hashDoubles[names[15]] = ParseDouble(data[15]);          //num_players_best
            //result.hashDoubles[names[16]] = ParseDouble(data[16]);          //num_players_rec
            //result.hashDoubles[names[17]] = ParseDouble(data[17]);          //num_players_notrec
            //result.hashDoubles[names[18]] = Double.Parse(data[18]);         //suggested_age
            result.hashStringArrays[names[19]] = ParseStringArray(data[19], CATEGORY).Select(c => IDtoLabel(c)).ToArray(); //categories
            result.hashStringArrays[names[20]] = ParseStringArray(data[20], MECHANIC).Select(c => IDtoLabel(c)).ToArray(); //mechanics
            //result.hashStringArrays[names[21]] = ParseStringArray(data[21]);//, BOARDGAMEFAMILY); //boardgamefamilies
            //result.hashStringArrays[names[22]] = ParseStringArray(data[22]); //implementation_of
            //result.hashStringArrays[names[23]] = ParseStringArray(data[23]);//, DESIGNER); //designers
            //result.hashStringArrays[names[24]] = ParseStringArray(data[24]);//, ARTIST); //artists
            //result.hashStringArrays[names[25]] = ParseStringArray(data[25]);//, PUBLISHER); //publishers

            return result;
        }
Exemplo n.º 3
0
 public static List <DataLine> ParseHistorical(string[][] data)
 {
     return(data.Skip(1).Select(d => DataLine.ParseHistorical(d, data[0])).ToList());
 }
Exemplo n.º 4
0
 /// <summary>
 /// Parses all the data with the types (defined by human) for the BoardGameGeek data
 /// </summary>
 /// <param name="data">A two-dimensional (jagged) array of strings, containing
 /// the names of columns (as the first element) and then DataLine content in all
 /// following.</param>
 /// <returns>A list of DataLines with matching keys and types.</returns>
 public static List <DataLine> ParseFixed(string[][] data)
 {
     Console.WriteLine("Parsing " + data.Length + " lines");
     return(data.Skip(1).Select(d => DataLine.ParseFixed(d, data[0])).ToList());
 }
Exemplo n.º 5
0
 // Makes a DataLine into a Centroid
 private static Dictionary<string, double> Convert(DataLine data)
 {
     Dictionary<string, double> centroid = new Dictionary<string, double>();
     foreach (string key in data.hashDoubles.Keys)
     {
         centroid[key] = data.hashDoubles[key] ?? 0.0; // Null == 0.0 (might not be good)
     }
     return centroid;
 }
Exemplo n.º 6
0
 /// <summary>
 /// Adds the given DataLines as a member of this cluster.
 /// </summary>
 /// <param name="a">The DataLine to add.</param>
 public void AddMember(DataLine a)
 {
     this.members.Add(a);
 }
Exemplo n.º 7
0
 public KMeanCluster(DataLine answer)
     : this(Convert(answer))
 {
 }
Exemplo n.º 8
0
 /// <summary>
 /// Adds the given DataLines as a member of this cluster.
 /// </summary>
 /// <param name="a">The DataLine to add.</param>
 public void AddMember(DataLine a)
 {
     this.members.Add(a);
 }
Exemplo n.º 9
0
 public KMeanCluster(DataLine answer) : this(Convert(answer))
 {
 }