首页 > 解决方案 > 如何从包含唯一和重复记录的数据集中获取仅包含非重复记录的数据集?

问题描述

“我正在处理一个数据集,并希望将所有非重复记录提取到一个新数据集中。我当前的数据集有重复和非重复记录。有没有办法只获取唯一记录?

我已经尝试了下面的代码,它给了我所有重复的记录。

unique <- Data[!duplicated(Data),]
NewData <- unique[unique$x %in% unique$x[duplicated(unique$x)],]

例如,我采用了以下数据集

x <- c("A","B","B","D","A","C","B","A")
y <- c(1,2,3,4,5,6,7,8)
z <- c(8,7,6,5,4,3,2,1)
Data <- data.frame(x,y,z)

Dataframe:

x y z
A 1 8
B 2 7
B 3 6
D 4 5
A 5 4
C 6 3
B 7 2
A 8 1

我想要的是:

x y z
D 4 5
C 6 3

标签: pythonr

解决方案


这是一个基于 R 的替代方案

> Data[Data$x %in% as.character(unique(Data$x)) [table(Data$x)==1], ]
  x y z
4 D 4 5
6 C 6 3

或使用 dplyr

Data %>%
  group_by(x) %>%
  filter(n() == 1)

推荐阅读