看板 R_Language 關於我們 聯絡資訊
[問題類型]: 程式諮詢(我想用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筆資料進行分析 想請問站內大大可否提供些許資訊供參考 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.176.212.49 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1562514065.A.A5D.html
bboybighead2: group_by + arrange + slice 07/08 00:51
a78998042a: key_type_num = length(unique(your_data$KEY)) 07/08 01:41
a78998042a: use_index = cumsum(c(0, table(your_data$KEY)))+1 07/08 01:41
a78998042a: your_data[use_index[1:key_type_num], ] 07/08 01:41
a78998042a: or 07/08 01:42
a78998042a: result = lapply(split(your_data, your_data$KEY), 07/08 01:42
a78998042a: function(x)head(x, 1)) 07/08 01:42
a78998042a: do.call(rbind, result) 07/08 01:42
a78998042a: or your_data[!duplicated(your_data$KEY), ] 07/08 01:48
andrew43: data.frame用split+do.call,data.table直接上 07/08 02:14
andrew43: http://www.ideone.com/R9C95X 07/08 02:14
andrew43: 日期可預先處理並排序會比較穩當。 07/08 02:16