仅复制/复制数据框中的特定行

时间:2017-06-29 08:10:55

标签: r data-manipulation

我的数据符合uniue id并按访问日期排序。有些人有多次访问。数据采用长格式按访问排序。我只想复制每个人最后一次访问的一行。如何只复制数据框中的特定行?

id  visit             glucose
1     12 Jan 2015      12
1      3 Feb 2015       8
2      1 Feb 2015       13
3      12 Jan 2015      7 
3      4 Feb 2015       13
3      1  March 2015    8

1 个答案:

答案 0 :(得分:1)

如果我们需要根据每个'id'的'访问'复制最后一行,我们可以使用data.table。将'data.frame'转换为'data.table'(setDT(df1)),将order转换为'id',将'visit'转换为'id',我们复制最后一行({{ 1}})

.N

如果我们只想要每个'id'的最后一行

library(data.table)
setDT(df1)[order(id, as.Date(visit, "%d %b %Y")), .SD[c(seq_len(.N), .N)], by = id]
#    id         visit glucose
#1:  1   12 Jan 2015      12
#2:  1    3 Feb 2015       8
#3:  1    3 Feb 2015       8
#4:  2    1 Feb 2015      13
#5:  2    1 Feb 2015      13
#6:  3   12 Jan 2015       7
#7:  3    4 Feb 2015      13
#8:  3 1  March 2015       8
#9:  3 1  March 2015       8