【发布时间】:2013-05-14 04:42:39
【问题描述】:
下面是我原始数据框的一小部分。我需要组合那些在特定季节重复特定id 并且其lic 和vessel 不同的行。通过组合我需要总和qtty 和grossTon。
请以season 1998中的id 431为例(*)。
season lic id qtty vessel grossTon
…
1998 16350 431 40 435 57
1998 16353 431 28 303 22.54
…
同一主题431 有两个不同的lic(16350 和16353)和两个不同的vessels(435 和303)。在这种特定情况下预期的结果是:
season lic id qtty vessel grossTon
…
1998 16350 431 68 435 79.54
…
我不介意lic 和vessel 在结果行中提醒,我想要的是保留season、id 以及qtty 和grossTon 的总和。在上面的示例中,我手动选择了lic 16350 和vessel 435。
说实话,我不知道该怎么做,所以我非常感谢任何帮助。
谢谢
原始数据(*= 要合并的行)
season lic id qtty vessel grossTon
1998 15593 411 40 2643 31.5
1999 27271 411 40 2643 31.5
2000 35758 411 40 2643 31.5
2001 45047 411 50 2643 31.5
2002 56291 411 55 2643 31.5
2003 66991 411 55 2643 31.5
2004 80581 411 55 2643 31.5
2005 95058 411 52 NA NA
2006 113379 411 50 10911 4.65
2007 120894 411 50 10911 4.65
2008 130033 411 50 2483 8.5
2009 139201 411 46 2296 50
2010 148833 411 46 2296 50
2011 158395 411 46 2296 50
1998 16350 431 40 435 57 # *
1998 16353 431 28 303 22.54 # *
2000 37491 436 50 2021 19.11
2001 47019 436 50 2021 19.11
2002 57588 436 51 2021 19.11
2003 69128 436 51 2021 19.11
2004 82400 436 52 2021 19.11
2005 95599 436 50 2021 19.11
2006 113126 436 50 2021 19.11
2007 122387 436 50 2021 19.11
2008 131126 436 50 2021 19.11
2009 140417 436 50 2021 19.11
2010 150673 436 50 2021 19.11
2011 159776 436 50 2021 19.11
我还需要保留每个赛季只有一个 id 的前一行和后一行。像这样:(*=合并后的行)
season lic id qtty vessel grossTon
1998 15593 411 40 2643 31.5
1999 27271 411 40 2643 31.5
2000 35758 411 40 2643 31.5
2001 45047 411 50 2643 31.5
2002 56291 411 55 2643 31.5
2003 66991 411 55 2643 31.5
2004 80581 411 55 2643 31.5
2005 95058 411 52 NA NA
2006 113379 411 50 10911 4.65
2007 120894 411 50 10911 4.65
2008 130033 411 50 2483 8.5
2009 139201 411 46 2296 50
2010 148833 411 46 2296 50
2011 158395 411 46 2296 50
1998 16350 431 68 435 79.54 #*
2000 37491 436 50 2021 19.11
2001 47019 436 50 2021 19.11
2002 57588 436 51 2021 19.11
2003 69128 436 51 2021 19.11
2004 82400 436 52 2021 19.11
2005 95599 436 50 2021 19.11
2006 113126 436 50 2021 19.11
2007 122387 436 50 2021 19.11
2008 131126 436 50 2021 19.11
2009 140417 436 50 2021 19.11
2010 150673 436 50 2021 19.11
2011 159776 436 50 2021 19.11
【问题讨论】:
-
不清楚你想如何处理
vessel? -
听起来
?merge和?aggregate可能会有所帮助。 -
@frank,我不确定在这个例子中会合并什么?我认为标题中使用了“合并”,但似乎不需要该功能,除非我读错了问题
-
@RicardoSaporta 是的。我刚看到标题和四个数据集摘录,很快就得出了错误的结论。 :)
-
@Rafael,用
*标记行将使其他人更难复制+粘贴您的数据。相反,用#标记行的结束(如果你愿意,可以在之后的任何评论)