美文网首页R语言
[技巧]玩转大表格的几个神奇函数

[技巧]玩转大表格的几个神奇函数

作者: 小洁忘了怎么分身 | 来源:发表于2018-12-24 10:31 被阅读99次

    最近在实战中提升R语言,开启了疯狂写函数的时代。
    这几个函数主要针对几万行,每列有重复值的大数据框来做一些简单的统计和处理,还有之前端详过的既不是NA也不是NULL的“”该如何处理。

    1.去除含有“”的行

    输入是数据框名
    借助na.omit这个函数,将含有“”空字符串的行过滤掉。

    empty.omit <- function(df){
      df[df==""] <- NA
      na.omit(df)
    }
    

    2.按照某两列来去重复

    本打算连整个表格的去重复一起写,当我写下unique.d的时候发现有现成的函数名叫unique.data.frame!我就不写了。我写一个选列去重吧!
    输入是数据框名,依据列的号。

    dup2 <- function(df,m,n){
     df[!duplicated(df[,c(m,n)]),]
    }
    

    3.表格的去重统计

    输入仍然是表格。
    (1)将统计结果输出为表格

    dumd <- function(df){
    colname <- vector("character")
    count <- vector("integer")
    for(i in 1:ncol(df)){
      colname[i] = colnames(df)[[i]]
      count[i]=nrow(df[!duplicated(df[,i]),])
    }
    output <- tibble(colname,count) %>%
      arrange(desc(count))
    print(output)
    }
    

    (2)将统计结果输出为向量(第一个数为行数)

    dump <- function(df){
      count <- vector("integer")
      for(i in 1:ncol(df)){
        count[i]=nrow(df[!duplicated(x[,i]),])
      }
      print(c(nrow(df),count))
    }
    

    连用更轻松

    df <- df %>%
      unique.data.frame() %>%
      empty.omit()
    

    相关文章

      网友评论

        本文标题:[技巧]玩转大表格的几个神奇函数

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