public List <TablaFrecuencia_E> RecuperarDatos() { List <TablaFrecuencia_E> DataFinal = new List <TablaFrecuencia_E>(); foreach (DataGridViewRow dr in dtgvFrecuenciaRelativa.Rows) { TablaFrecuencia_E obj = new TablaFrecuencia_E(); if (dr.Cells["xi"].Value != null) { if (rbnSinIntervalo.Checked) { if (rbnTexto.Checked) { obj.strxi = Convert.ToString(dr.Cells["xi"].Value); } if (rbnNumerico.Checked) { obj.xi = Convert.ToDecimal(dr.Cells["xi"].Value); } } if (rbnConIntervalo.Checked) { obj.strxi = Convert.ToString(dr.Cells["xi"].Value); obj.xi = Convert.ToDecimal(dr.Cells["tmpxi"].Value); } obj.fi = Convert.ToInt32(dr.Cells["fi"].Value); obj.Fi = Convert.ToInt32(dr.Cells["F"].Value); obj.ni = Convert.ToDecimal(dr.Cells["ni"].Value); obj.Ni = Convert.ToDecimal(dr.Cells["N"].Value); DataFinal.Add(obj); } } return(DataFinal); }
public void CargaDatos(string[] data) { TipoDato_E objtd = new TipoDato_E(); foreach (string item in data) { if (rbnTexto.Checked) { objtd.datatexto.Add(item); } if (rbnNumerico.Checked) { objtd.datadecimal.Add(decimal.Parse(item.Replace('.', ','))); } } List <TablaFrecuencia_E> xi_fi = new List <TablaFrecuencia_E>(); if (rbnSinIntervalo.Checked) { if (rbnTexto.Checked) { xi_fi = objtd.datatexto.GroupBy(x => x) .Select(y => new TablaFrecuencia_E { strxi = y.Key, fi = y.Count() }) .OrderBy(z => z.strxi).AsEnumerable().ToList(); } if (rbnNumerico.Checked) { xi_fi = objtd.datadecimal.GroupBy(x => x) .Select(y => new TablaFrecuencia_E { xi = y.Key, fi = y.Count() }) .OrderBy(z => z.xi).AsEnumerable().ToList(); } } if (rbnConIntervalo.Checked) { Intervalo_E objint = new Intervalo_E(); objint.numintervalo = Convert.ToInt32(txtInvertavalos.Text); objint.intervalo = Convert.ToDecimal(txtIntervaloSuperior.Text.Replace('.', ',')) - Convert.ToDecimal(txtIntervaloInferior.Text.Replace('.', ',')); objint.intinf = Convert.ToDecimal(txtIntervaloInferior.Text.Replace('.', ',')); objint.intsup = Convert.ToDecimal(txtIntervaloSuperior.Text.Replace('.', ',')); objint.fi = 0; for (int i = 0; i < objint.numintervalo; i++) { List <TablaFrecuencia_E> aux_xi_fi = new List <TablaFrecuencia_E>(); aux_xi_fi = objtd.datadecimal.GroupBy(x => x) .Select(y => new TablaFrecuencia_E { xi = y.Key, fi = y.Count() }) .Where(z => z.xi >= objint.intinf && z.xi <= objint.intsup).ToList(); objint.fi = aux_xi_fi.Select(x => x.fi).Sum(); decimal tmpxi = objint.intinf; decimal indexxi = objint.intinf; int numintervalo = 1; while (indexxi < objint.intsup) { bool isNumeric = int.TryParse(objint.intinf.ToString(), out int n); if (isNumeric) { indexxi++; tmpxi += indexxi; numintervalo++; } else { indexxi = indexxi + Convert.ToDecimal(0.01); tmpxi += indexxi; numintervalo++; } } TablaFrecuencia_E xi = new TablaFrecuencia_E { strxi = string.Concat(objint.intinf, " - ", objint.intsup), xi = tmpxi / numintervalo, fi = objint.fi }; objint.intinf = objint.intsup + (objint.intervalo >= 1 ? 1 : Convert.ToDecimal(0.01)); objint.intsup += objint.intervalo + (objint.intervalo >= 1 ? 1 : Convert.ToDecimal(0.01)); xi_fi.Add(xi); } } int xicount = xi_fi.Select(x => x.fi).Sum(); var hi = xi_fi.Select(x => new { x.strxi, x.xi, x.fi, hi = Math.Round((decimal)x.fi / xicount, 3) }).ToList(); int Fi = 0; decimal Hi = 0; for (int i = 0; i < hi.Count; i++) { dtgvFrecuenciaRelativa.Rows.Add(); int y = 0; if (rbnSinIntervalo.Checked) { if (rbnTexto.Checked) { dtgvFrecuenciaRelativa[y++, i].Value = hi[i].strxi; } if (rbnNumerico.Checked) { dtgvFrecuenciaRelativa[y++, i].Value = hi[i].xi; } y++; } if (rbnConIntervalo.Checked) { dtgvFrecuenciaRelativa[y++, i].Value = hi[i].strxi; dtgvFrecuenciaRelativa[y++, i].Value = hi[i].xi; } Fi += hi[i].fi; Hi += hi[i].hi; dtgvFrecuenciaRelativa[y++, i].Value = hi[i].fi; dtgvFrecuenciaRelativa[y++, i].Value = Fi; dtgvFrecuenciaRelativa[y++, i].Value = hi[i].hi; dtgvFrecuenciaRelativa[y++, i].Value = Hi; } }