现在看到的很多删除重复行的函数unique、distinct等等在筛选重复行并删除时,都会保留第一次出现。有没有什么办法可以把重复行全部删除的,换言之只保留从未跟其他数据重复过的数据
R语言 现在看到的很多删除重复行的函数unique、distinct等等在筛选重复行并删除时,都会保留第一次出现。有没有什么办法可以把重复行全部删除的,换言之只保留从未跟其他数据重复过的数据?
可以使用R语言中的duplicated函数,该函数可以标记出重复行,然后可以使用subset函数来删除重复行。
例子:
# 定义数据集
dat <- data.frame(x = c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
y = c(2, 3, 3, 4, 4, 6, 7, 8, 8, 10))
# 标记重复行
duplicated_rows <- duplicated(dat)
# 删除重复行
dat_unique <- subset(dat, !duplicated_rows)
# 输出结果
dat_unique
# x y
# 1 1 2
# 2 2 3
# 4 4 4
# 6 6 6
# 7 7 7
# 9 9 8
# 10 10 10
table(df$a) #计算每项出现的次数,df为矩阵,a为参考变量那列
df[!(df$a %in% unique(df$a[duplicated(df$a)])),] #只保留a列唯一即不重复的项的行