“如何提取价值”;“最后访问”;从R?中重复测量的数据集?
假设我有一个重复测量的数据帧:“如何提取价值”;“最后访问”;从R?中重复测量的数据集?,r,data-extraction,R,Data Extraction,假设我有一个重复测量的数据帧: >m id age diagnosis 1 4 0 1 7 1 1 9 0 2 6 1 4 9 1 4 10 0 诊断不是时不变的。我如何在最后一次就诊(最老年龄)时提取诊断结果以获得类似结果 id age diagnosis 1 9 0 2 6 1
>m
id age diagnosis
1 4 0
1 7 1
1 9 0
2 6 1
4 9 1
4 10 0
诊断不是时不变的。我如何在最后一次就诊(最老年龄)时提取诊断结果以获得类似结果
id age diagnosis
1 9 0
2 6 1
4 10 0
您可以尝试data.table的last()
或者使用dplyrslice(,n())
或者使用
baser
中的duplicated
,我们得到逻辑索引来对行进行子集划分
m[!duplicated(m$id,fromLast=TRUE),]
# id age diagnosis
#3 1 9 0
#4 2 6 1
#6 4 10 0
基本等价物:
m[by(seq_len(nrow(m)),m$id,FUN=tail,1),]
甚至更好/更快-m[tapply(seq_len(nrow(m)),m$id,FUN=tail,1),]
library(dplyr)
slice(group_by(df, id), n())
# Source: local data frame [3 x 3]
# Groups: id [3]
#
# id age diagnosis
# (int) (int) (int)
# 1 1 9 0
# 2 2 6 1
# 3 4 10 0
m[!duplicated(m$id,fromLast=TRUE),]
# id age diagnosis
#3 1 9 0
#4 2 6 1
#6 4 10 0