统计数据框各列有多少非重复值的代码
2018-12-21 本文已影响24人
小洁忘了怎么分身
搜索无果,勉强自己用for循环做了一个轮子,算是r数据科学没有白学
colname <- vector("character")
count <- vector("integer")
for(i in 1:ncol(my_gene)){
colname[i] = colnames(my_gene)[[i]]
count[i]=nrow(my_gene[!duplicated(my_gene[,i]),])
}
test <- tibble(colname,count)
【更新于12.23 】写成输出表格的函数
dumd <- function(x){
colname <- vector("character")
count <- vector("integer")
for(i in 1:ncol(x)){
colname[i] = colnames(x)[[i]]
count[i]=nrow(x[!duplicated(x[,i]),])
}
df <- tibble(colname,count) %>%
arrange(desc(count))
print(df)
}
【更新于2018.12.22】写成输出向量的函数
dump <- function(x){
count <- vector("integer")
for(i in 1:ncol(x)){
count[i]=nrow(x[!duplicated(x[,i]),])
}
print(c(nrow(x),count))
}
试图写一个组合多个表格的函数,结果失败了,先放下以后再改
dumb <- function(...){
colname <- vector("character")
count <- vector("integer")
for(i in 1:ncol(...)){
colname[i] = colnames(...)[[i]]
count[i]=nrow(...[!duplicated(...[,i]),])
}
paste('df',i) <- tibble(colname,count) %>%
arrange(desc(count))
list(paste('df',1:i))
}
test <- dumb(hgnc,hgnc_group,hgnc_family)
2018.12.24 成功实现批处理
dum.l <- function(x){
output <- list()
for (i in 1:length(x)){
output[[i]] <- dumd(noquote((x)[[i]]))
}
output
}
multidum <- function(...){
input <- list(...)
output <- list()
for (i in 1:length(input)){
output[[i]] <- dumd(noquote((input)[[i]]))
}
output
}
multifun <- function(...,fun){
input <- list(...)
output <- list()
for (i in 1:length(input)){
output[[i]] <- fun(noquote((input)[[i]]))
}
output
}