为 R 中的递归列表创建唯一条目的子集

Creating a subset of unique entries for a recursive list in R

我有以下数据集df

name  draught   nav_status  date
 A      22          0       24/12/2014
 A      22          0       25/12/2014
 A      11          5       26/12/2014
 A      11          1       27/12/2014
 B      22          0       24/12/2014
 B      22          0       25/12/2014
 B      22          0       26/12/2014
 B      22          5       27/12/2014
 B      9           0       28/12/2014
 B      22          0       29/12/2014

从这个数据集中,我需要为列表中的每个对象提取唯一的草稿值。

我对 R 还很陌生,并进行了以下尝试

y <- subset(df,!duplicated(df[,draught]),)

Dup <- function(x){
x <- x[!duplicated[x$draught],]
y <- lapply(df, Dup)

但这会删除整个数据的草稿条目。我浏览了一些关于拆分应用和组合技术的文献,并尝试了这些选项。 请提供一些指导,文献以便解决这个问题。

结果应该是

name  draught  nav_status  date
 A     22          0        24/12/2014
 A     11          5        26/12/2014
 A     11          1        27/12/2014
 B     22          0        25/12/2014
 B     9           0        28/12/2014

我什至尝试subset根据第一个和最后一个条目按顺序排列并删除重复的条目来subset数据,但是丢失了data.Thank你!!

使用 data.table 库,您可以通过以下方式获得结果:

library(data.table)

dt <- as.data.table(df)
unique(dt, by = c('name', 'draught'))

有一件事。为什么在您想要的结果中有一对 A 11 的两个条目?