unique
R語言u(píng)nique(){base}可以用于單個(gè)列表去重復(fù),但不適用與數(shù)據(jù)集。
test <- c(1,2,3,1,4,1,2,3)
unique(test)
# 不適用數(shù)據(jù)集
unique(iris)
duplicated
duplicated (){base}判斷列表或數(shù)據(jù)集中的重復(fù)元素,并返回一個(gè)邏輯向量(TRUE/FALSE),然后利用[]選出適合條件元素。
index <- duplicated(iris$Species)
data <- iris[!index,]
[dplyr]{https://github.com/tidyverse/dplyr}是一個(gè)用于數(shù)據(jù)處理的R包,提供很多不同的功能來常見的數(shù)據(jù)處理難題。
require(dplyr)
# 查看不重復(fù)元素個(gè)數(shù)
n_distinct(iris$Species)
?
# 根據(jù)指定列去掉重復(fù)元素
iris %>% distinct(Species, .keep_all = TRUE)
去重復(fù)并合并同類項(xiàng)
# 取除phylum分類等級(jí),并合并同類項(xiàng)
otu[-c(1, 14, 16:ncol(otu))] %>%
group_by(phylum) %>%
summarise_all(sum) -> data
# 或者,但aggregate會(huì)去除by中是NA的那項(xiàng)(此處門水平中有NA將被去掉)
data2 <- aggregate(otu[-c(1, 13:ncol(otu))], by = list(otu[,15]), sum)
其他函數(shù)
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)