[问题]资料排序后,如何选取相同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