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

最近在实战中提升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()

你可能感兴趣的:([技巧]玩转大表格的几个神奇函数)