【发布时间】:2018-08-28 08:57:37
【问题描述】:
早上好 Stack Overflow,
可以使用(s)apply 函数来获取有关数据框列的一些统计信息(无论如何)。我想知道是否可以使用apply 系列为每个不同的数据框获取每列的此类统计信息?
每列缺失值的数量(1 个数据框):
dataf <- data.frame(list(a = 1:3, b = c(NA, 3:4)), row.names = c("x","y","z"), stringsAsFactors = FALSE)
sapply(dataf, function(x) {sum(is.na(x))})
我曾考虑过制作一个数据框列表,但统计信息随后汇总在列表的元素(即数据框)上,尽管我希望它在列上进行计算。有什么想法吗?
祝你有美好的一天,
安东尼
【问题讨论】:
-
lapply(list, function(x) sapply(x, function(y) sum(is.na(y))))可能值得一试 -
@missuse 谢谢!我还有很多东西要学xD!祝你有美好的一天!
-
@missuse 考虑到这个多数据集问题,您如何将 NA 替换为 0?我已经尝试过你的逻辑,但它不适用于代码:
lapply(li, function(dataf) sapply(dataf, function(col) { mutate_all(col, funs(ifelse(is.na(.), 0, .))) })) -
试试:
lapply(li, function(x) sapply(x, function(y) ifelse(is.na(y), 0, y)))或lapply(li, function(x) mutate_all(x, funs(ifelse(is.na(.), 0, .)))) -
我会
lapply(li, function(x){x[is.na(x)] <- 0; return(x);})