Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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 根据某些条件删除重复项_R_Dplyr_Tidyr - Fatal编程技术网

R 根据某些条件删除重复项

R 根据某些条件删除重复项,r,dplyr,tidyr,R,Dplyr,Tidyr,我有两个数据集:D1和D2。D2是D1的左连接,是一个更大的数据集,我称之为D3。虽然D2的键列具有与D1相同数量的唯一元素,但它有一些重复项,我想根据某些条件消除这些重复项 有两个问题: 1除键值外,有些行充满了NA值,这些行对我来说非常重要 2还有一些行可能重复,也可能不重复,但与我的标准条件不匹配 如何根据层次结构有条件地删除这些重复项 样本数据集: 预期数据集: 复制可以满足您的需要 dat[!duplicateddat$ID,] ID变量 1 1 1 2 2 1 3

我有两个数据集:D1和D2。D2是D1的左连接,是一个更大的数据集,我称之为D3。虽然D2的键列具有与D1相同数量的唯一元素,但它有一些重复项,我想根据某些条件消除这些重复项

有两个问题:

1除键值外,有些行充满了NA值,这些行对我来说非常重要

2还有一些行可能重复,也可能不重复,但与我的标准条件不匹配

如何根据层次结构有条件地删除这些重复项

样本数据集:

预期数据集:

复制可以满足您的需要

dat[!duplicateddat$ID,] ID变量 1 1 1 2 2 1 3 3 1 5 4 2 7 5 1 8 6 1 9 7 1 12 8 2 13 9 NA 14 10 1 就像tidyverse中的一些东西一样:

图书馆弹琴 dat%>% 组\按ID%>% 切片1%>% 解组 和data.table

图书馆数据表 as.data.tabledat[!duplicatedID,] 数据:


让我们这么说吧!我们的数据表如下:

Library(data.table)
 df <- data.table(Name = c("JACK", "JOHN", "JACK", "ANNIE", "JOHN", "JACK"), 
                  Amount = c(30, 10, 20, 24, 5, 1))
输出:
我希望这能对您有所帮助。

您想在每组中选择第一行吗?df%>%group_byID%>%slice1L?重复也可以在单个列上工作。我在识别重复项方面没有问题,我的问题是在识别后处理重复项。1您对D1和D2的讨论似乎是多余和混乱的。如果有多个表是相关的,那么。。。请提供多个表以及我们为什么需要它们来显示加入它们的作用的上下文。2可能是也可能不是重复的声音。。。黏糊糊的。你的标准状态是什么?触发或停止删除需要哪些非重复条件?
ID  Var
1   1
2   1
3   1
4   2
5   1
6   1
7   1
8   2
9  
10  1
Library(data.table)
 df <- data.table(Name = c("JACK", "JOHN", "JACK", "ANNIE", "JOHN", "JACK"), 
                  Amount = c(30, 10, 20, 24, 5, 1))
df[][order(Name, Amount)]
df[,.SD[1], by = Name]
    Name Amount
1:  JACK     30
2:  JOHN     10
3: ANNIE     24