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