美文网首页Cook RR. python新手日记R语言从零开始
R语言第二章数据处理③删除重复数据

R语言第二章数据处理③删除重复数据

作者: 柳叶刀与小鼠标 | 来源:发表于2018-12-07 01:33 被阅读116次

    目录

    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)

    相关文章

      网友评论

        本文标题:R语言第二章数据处理③删除重复数据

        本文链接:https://www.haomeiwen.com/subject/nrlzcqtx.html