[問題]資料排序後,如何選取相同key值的第1筆

作者: kakaman (日子過的真快阿)   2019-07-07 23:41:03
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
以往都是用excel作資料分析,僅處理數萬筆資料
但近期因要驗證廠商程式開發之正確性,需對數百萬筆甚至千萬筆以上資料進行通盤驗證
故開始學習R
想請問站內大大有關資料排序後,怎麼選取相同KEY值之第1筆資料
[程式範例]:
Data frame舉例如下
PID 所在地 辦理日期 KEY
AA 臺北 4/1 AA臺北
AA 臺北 4/15 AA臺北
AA 臺北 7/10 AA臺北
BB 臺中 5/1 BB臺中
BB 臺中 6/10 BB臺中
BB 臺中 7/16 BB臺中
BB 臺中 8/20 BB臺中
... ... ... ...
僅想選取AA 4/1
BB 5/1等同KEY下辦理日期第1筆資料進行分析
想請問站內大大可否提供些許資訊供參考
謝謝
作者: bboybighead2 (腳毛會唱歌)   2019-07-08 00:51:00
group_by + arrange + slice
作者: a78998042a (Benjimine)   2019-07-08 01:41:00
key_type_num = length(unique(your_data$KEY))use_index = cumsum(c(0, table(your_data$KEY)))+1your_data[use_index[1:key_type_num], ]orresult = lapply(split(your_data, your_data$KEY),function(x)head(x, 1))do.call(rbind, result)or your_data[!duplicated(your_data$KEY), ]
作者: andrew43 (討厭有好心推文後刪文者)   2019-07-08 02:14:00
data.frame用split+do.call,data.table直接上http://www.ideone.com/R9C95X日期可預先處理並排序會比較穩當。

Links booklink

Contact Us: admin [ a t ] ucptt.com