This could be a good starting point:
var df = new List<float>();
var bs = new List<float>();
var percentiles = new List<float>[100];
for(int i = 0; i < percentiles.Length; i++)
{
percentiles[i] = new List<float>();
}
var line_idx = 0;
foreach(var line in enumerate(in1))
{
var cols = line.Replace(Environment.NewLine, "")
.Split(new[]{'\t'});
df.Add(float.Parse(cols[0]));
for(int j = 1; j < 9; j++)
{
percentiles[line_idx].Add(float.Parse(cols[j]));
}
var rx = (percentiles[line_idx][2] + percentiles[line_idx][0] - 2 * percentiles[line_idx][1])/(percentiles[line_idx][2]-percentiles[line_idx][0]);
bs.Add(rx);
line_idx++;
}
I could have done some typo as this is just a little snippet on the fly.
EDIT: Linq
var values = File.ReadLines("")
.Select(line =>
{
var cols = line.Replace(Environment.NewLine, "")
.Split(new[] { '\t' })
.Select(m => float.Parse(m))
.ToArray();
return new
{
df = cols[0],
percentiles = cols.Skip(1).ToArray(),
bs = (cols[3] + cols[1] - 2 * cols[2]) / (cols[3] - cols[1])
};
});
var df = values.Select(m => m.df).ToArray();
var bs = values.Select(m => m.bs).ToArray();
var percentiles = values.Select(m => m.percentiles).ToArray();