我有一個數據幀(稱爲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
從本質上講,我想合併行,以便躺在列「去勢」中的信息,「男性」和「女性」是所有內一排,而不是在目前的情況下該數據是拆分和重複信息出現在多行上,關於相同的物種和拖運等。這是至關重要的當我合併行時,其他所有內容都被維護並保持唯一,因爲每行(合併後)表示一次獨特的拖拽。
我不想對這三列應用任何總和/平均值/其他函數,我想讓所有其他變量保持不變。我也不想創建任何額外的新列,並希望儘可能保留新的列。
注意:鑑於我有一個巨大的數據集,我並不總是知道a)哪些行是半重複的,以及b)每行有哪些Unsexed/Males/Females組合的信息。
我已經嘗試了各種方法來做到這一點,我不得不努力工作,部分原因是作爲RI的初學者一直在努力去真正理解我嘗試過的函數並將它們應用於我的數據(聚合,ddply,cast)。
在此先感謝。
或者使用'data.table',你可以不喜歡'setDT(DF),lapply(.SD,函數(x)的排序(X)[1L]), by =。(Survey,HaulNo,Year,Species,HaulUnique,Lat_long)]' –
嗨大衛,謝謝你的代碼。它運行良好,但它實際上並沒有合併行?它只是重新排列我的數據框右側的Unsexed,Males,Females列... – kmalts
@KatherineMaltby我認爲您的流程存在問題。這兩個解決方案都可以工作,但第二個解決方案使用零取代NA,因爲它使用'sum'函數和'na.rm = T'。 – AntoniosK