R 定义要在data.table中的ID重复项中删除的变量
我有以下数据集R 定义要在data.table中的ID重复项中删除的变量,r,duplicates,data.table,R,Duplicates,Data.table,我有以下数据集 DT <- data.table( id = c(1,2,3,4,4,5,6,6,7), date = c("2013-11-22","2017-01-24","2020-02-10","2011-01-03" ,"2011-01-03","2012-04-03","2010-09-03&q
DT <- data.table(
id = c(1,2,3,4,4,5,6,6,7),
date = c("2013-11-22","2017-01-24","2020-02-10","2011-01-03"
,"2011-01-03","2012-04-03","2010-09-03","2010-09-03"
,"2010-05-03"),
status = c("Never","Current","Former",NA,"Former"
, NA,"Never","Former","Current")
)
原始数据集有更多的行和列,还有一个数据。table
函数会节省时间。还有一些id
会多次出现。我以前尝试过将id
保留为最新日期。但是,我有太多的“NA”有另一个更早日期的状态条目
我如何定义相同的
id
应该保留哪些状态
?我们可以创建一个因子
,其中状态
指定级别
,使用该因子将与'id'一起排序
,并通过'id'获得唯一的
library(data.table)
unique(DT[order(id, ordered(status, c("Former", "Current", "Never")))], by = 'id')
请将您提供的样本数据的预期输出包括在内。我不清楚“应该保留的id行取决于状态。如果是NA和nonNA状态,”。如果什么是
NA
和非NA
状态?输出应该是以下id日期状态1:1 2013-11-22从不2:2 2017-01-24当前3:3 2020-02-10前4:4 2011-01-03前5:5 2012-04-03 6:6 2010-09-03前7:7 2010-05-03当前
请编辑帖子以显示该信息。
library(data.table)
unique(DT[order(id, ordered(status, c("Former", "Current", "Never")))], by = 'id')