【发布时间】:2020-08-04 23:25:06
【问题描述】:
我有以下数据集
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")
)
我想创建一个唯一的id 并删除重复项。
- 应保留的
id行取决于status。 - 如果状态有
NA和非NA,我想保留非NA观察。 - 如果状态有
Former和Never,我想保持Former观察。
下面的示例输出:
id date status
1: 1 2013-11-22 Never
2: 2 2017-01-24 Current
3: 3 2020-02-10 Former
4: 4 2011-01-03 Former
5: 5 2012-04-03 <NA>
6: 6 2010-09-03 Former
7: 7 2010-05-03 Current
原始数据集有更多的行和列,data.table 函数会节省时间。还有一些id 出现不止一次。我之前尝试过将id 保留为最新日期。但是,我有太多的“不适用”,并且在更早的日期有另一个状态条目。
如何为相同的id 定义应该保留哪个status?
【问题讨论】:
-
请在您提供的示例数据中包含您的预期输出。我不清楚“应保留的 id 行取决于状态。如果它是 NA 和 nonNA 状态,”。如果 what 是
NA和非NA状态? -
输出应该是下面的
id date status 1: 1 2013-11-22 Never 2: 2 2017-01-24 Current 3: 3 2020-02-10 Former 4: 4 2011-01-03 Former 5: 5 2012-04-03 <NA> 6: 6 2010-09-03 Former 7: 7 2010-05-03 Current -
请编辑帖子以显示该信息。
标签: r duplicates data.table