R语言数据去重

  • unique对于一个向量管用,对于matrix、data frame那些指定列去重就不管用了

1、unique函数

  • 查看重复的方式,有点像分类变量个数一样,unique() 或者 table() 都是很好的方式去检测。
> c
  a b d
1 1 a 1
2 2 b 1
3 3 c 1
4 1 a 1
5 2 b 1
6 3 c 1
> unique(c)
  a b d
1 1 a 1
2 2 b 1
3 3 c 1
> unique(c,fromLast = T)
  a b d
4 1 a 1
5 2 b 1
6 3 c 1

以上是根据你的数据得到的,R中默认的是fromLast=FALSE,即若样本点重复出现,则取首次出现的;

否则去最后一次出现的。列名不变,去掉重复样本值之后的行名位置仍为原先的行名位置。

2、duplicated函数

  • 在数据框(data.frame)中应用较为广泛
> c[!duplicated(c)]
  a b d
1 1 a 1
2 2 b 1
3 3 c 1
4 1 a 1
5 2 b 1
6 3 c 1
> c[!duplicated(c),] ###注意`,`
  a b d
1 1 a 1
2 2 b 1
3 3 c 1
> c[!duplicated(c[3]),]
  a b d
1 1 a 1


#用法与is.na()对比
x[!is.na(x)]  #选中不是缺失值的数据

3、distinct(dplyr包)

  • distinct(data,列名,.keep_all=F)
## .keep_all默认FALSE
> distinct(c,d)
  d
1 1

> distinct(c,d,.keep_all = T)
  a b d
1 1 a 1

> distinct(c,a)
  a
1 1
2 2
3 3

4 引用

R语言︱数据去重

R语言去重复数据

猜你喜欢

转载自blog.csdn.net/LeaningR/article/details/115211219