目录
R语言第二章数据处理①选择列
R语言第二章数据处理②选择行
R语言第二章数据处理③删除重复数据
================================================
这篇主要介绍如何在R中识别和删除重复数据。
主要用的到R base和dplyr函数:
duplicated():用于识别重复的元素和
unique():用于提取唯一元素,
distinct()[dplyr package]删除数据框中的重复行。
x <- c(1, 1, 2,4, 5, 4, 6)
duplicated(x)
## [1] FALSE TRUE FALSE FALSE FALSE TRUE FALSE
x[duplicated(x)]
## [1] 1 4
x[!duplicated(x)]
## 1, 1 2,4, 5, 6
- 根据某一列删除数据框中重复值
# Remove duplicates based on Sepal.Width columns
my_data[!duplicated(my_data$Sepal.Width), ]
## # A tibble: 23 x 5
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## <dbl> <dbl> <dbl> <dbl> <fct>
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
## # ... with 17 more rows
- 使用dplyr包删除数据框中的重复行
函数distinct()[dplyr package]可用于仅保留数据帧中的唯一行。 如果存在重复行,则仅保留第一行。 它是R base函数unique()的高效版本。
根据所有列删除重复的行(完全一样的观测值):
my_data %>% distinct()
根据特定列删除重复值
my_data %>% distinct(Sepal.Length, .keep_all = TRUE)
根据多列删除重复值
my_data %>% distinct(Sepal.Length, Petal.Width, .keep_all = TRUE)
选项.kep_all用于保留数据中的所有变量。
总结
- 根据一个或多个列值删除重复行:my_data%>%dplyr :: distinct(Sepal.Length)
- R base函数从向量和数据帧中提取唯一元素:unique(my_data)
- R基函数确定重复元素:duplicated(my_data)
网友评论