【发布时间】:2017-08-15 02:49:44
【问题描述】:
我正在尝试每天根据主题 ID 选择第一个注册条目来整理任何多个条目。
我正在处理一个非常大的数据集,所以这里只是我的数据结构的快照:
df <- c(Contact.ID, Date.Time, Age, Gender, Attendance)
Contact.ID Date.Time Age Gender Attendance
1 A 2012-07-06 18:54:48 37 Male 30
2 A 2012-07-06 20:50:18 37 Male 30
3 A 2012-08-14 20:18:44 37 Male 30
4 B 2012-03-15 16:58:15 27 Female 40
5 B 2012-04-18 10:57:02 27 Female 40
6 B 2012-04-18 17:31:22 27 Female 40
7 B 2012-04-18 18:37:00 27 Female 40
8 C 2013-10-22 17:46:07 40 Male 5
9 C 2013-10-27 11:21:00 40 Male 5
10 D 2012-07-28 14:48:33 20 Female 12
我尝试了一些不同的方法,例如:
t.first <- df[match(unique(df$Date.Time), df$Date.Time),]
setDT(df)[,.SD[which.max(df$Date.Time)],keyby=df$Contact.ID]
library(dplyr)
t.first <- ddply(df, "Date.Time", function(z) tail(z,1))
但是,在给定我的特定主题 ID 的情况下,他们都没有让我获得第一个条目。
所以最后我需要留下一个数据集:
Contact.ID Date.Time Age Gender Attendance
1 A 2012-07-06 18:54:48 37 Male 29
2 A 2012-08-14 20:18:44 37 Male 29
3 B 2012-03-15 16:58:15 27 Female 38
4 B 2012-04-18 10:57:02 27 Female 38
5 C 2013-10-22 17:46:07 40 Male 5
6 C 2013-10-27 11:21:00 40 Male 5
7 D 2012-07-28 14:48:33 20 Female 12
请,如果有人可以提供帮助,我已经被困在这个问题上太久了。
【问题讨论】:
-
可以使用这个序列:dplyr::group_by() %>% dplyr::arrange() %>% dplyr::top_n()