我有一个长格式的数据集,看起来像:
var result = new List<Schedule>();
int elapsedHours = 0;
foreach (var s in scheduled)
{
int hours = s.TotalHours;
foreach (var r in registered)
{
if (elapsedHours <= r.To)
{
int from = Math.Max(elapsedHours, r.From);
if (r.TotalHours <= hours)
{
elapsedHours = r.To;
result.Add(new Schedule(from, elapsedHours, s.Type));
hours -= (elapsedHours - from);
}
else
{
elapsedHours = from + hours;
result.Add(new Schedule(from, elapsedHours, s.Type));
hours = 0;
}
}
}
if (hours > 0)
{
result.Add(new Schedule(elapsedHours, elapsedHours + hours, s.Type));
elapsedHours += hours;
}
}
我希望它是一个像这样的宽数据集:
gene code
amt1 435
amt1 436
amt1 424
amt2 593
amt2 492
amt3 293
amt1 442
但是到目前为止我什么都没用。我已经尝试了spread和pivot_wider,但是它们没有产生预期的结果。似乎这里的大多数其他示例在另一列中保持不变。