我有一个数据框(在下面的示例中称为A),看起来像这个子集:
Survey HaulNo Year Species Unsexed Males Females HaulUnique Lat_long
FRGF 1 2000 134567 NA 4 NA 1_2000 50.7_-2.5
FRGF 1 2000 134567 NA NA 5 1_2000 50.7_-2.5
FRGF 2 2003 134578 10 NA NA 2_2003 49.5_-1.5
FRGF 3 1998 123557 NA NA 7 3_1998 50.1_-0.5
FRGF 3 1998 123557 NA 3 NA 3_1998 50.1_-0.5
我想合并这些行,使它们看起来像下面的数据:
Survey HaulNo Year Species Unsexed Males Females HaulUnique Lat_long
FRGF 1 2000 134567 NA 4 5 1_2000 50.7_-2.5
FRGF 2 2003 134578 10 NA NA 2_2003 49.5_-1.5
FRGF 3 1998 123557 NA 3 7 3_1998 50.1_-0.5
基本上,我想合并行,以便列在" Unsexed"," Males"和"女性"所有都在一行内,而不是在当前情况下,这些数据被分割,并且重复信息出现在关于相同物种和运输等的多行上。当我合并行时,其他一切都被维护并保持唯一,这是至关重要的。行(一旦合并)代表一个独特的运输。
我不想对这3列应用任何类型的sum / mean / other函数,我希望保持所有其他变量不变。我也不想创建任何其他新列,并希望尽可能保留NA。
NB。鉴于我有一个庞大的数据集,我并不总是知道a)哪些行是半复制的,b)每行的Unsexed / Males / Females的组合都有信息。
我尝试过各种各样的方法来完成这一切,但我没有去做过,部分原因是因为RI的初学者一直在努力真正理解我尝试过的功能并将它们应用到我的身上。数据(聚合,ddply,强制转换)。
提前致谢。
答案 0 :(得分:2)
像
这样的东西aggregate(
df[, c("Unsexed", "Males", "Females")],
df[, c("Survey", "HaulNo", "Year", "Species", "HaulUnique", "Lat_long")],
FUN = sum,
na.rm = TRUE
)