Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 定义要在data.table中的ID重复项中删除的变量_R_Duplicates_Data.table - Fatal编程技术网

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')