R - 数据去重复
2019-12-07 本文已影响0人
吴十三和小可爱的札记
unique
R语言unique(){base}可以用于单个列表去重复,但不适用与数据集。
test <- c(1,2,3,1,4,1,2,3)
unique(test)
# 不适用数据集
unique(iris)
duplicated
duplicated (){base}判断列表或数据集中的重复元素,并返回一个逻辑向量(TRUE/FALSE),然后利用[]选出适合条件元素。
index <- duplicated(iris$Species)
data <- iris[!index,]
[dplyr]{https://github.com/tidyverse/dplyr}是一个用于数据处理的R包,提供很多不同的功能来常见的数据处理难题。
require(dplyr)
# 查看不重复元素个数
n_distinct(iris$Species)
# 根据指定列去掉重复元素
iris %>% distinct(Species, .keep_all = TRUE)
去重复并合并同类项
# 取除phylum分类等级,并合并同类项
otu[-c(1, 14, 16:ncol(otu))] %>%
group_by(phylum) %>%
summarise_all(sum) -> data
# 或者,但aggregate会去除by中是NA的那项(此处门水平中有NA将被去掉)
data2 <- aggregate(otu[-c(1, 13:ncol(otu))], by = list(otu[,15]), sum)
其他函数
distinct_all(.tbl, .funs = list(), ..., .keep_all = FALSE)
distinct_at(.tbl, .vars, .funs = list(), ..., .keep_all = FALSE)
distinct_if(.tbl, .predicate, .funs = list(), ..., .keep_all = FALSE)