将两列长表转换为宽格式

时间:2019-12-19 11:07:46

标签: r dataset reshape2

我有一个长格式的数据集,看起来像:

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,但是它们没有产生预期的结果。似乎这里的大多数其他示例在另一列中保持不变。

0 个答案:

没有答案