早上好,堆栈溢出
可以使用(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))})
我曾考虑过要创建一个数据框列表,但是尽管我希望在列上进行计算,但统计数据仍会集中在列表元素(即数据框)上。有想法吗?
祝你有美好的一天,
安东尼
答案 0 :(得分:1)
通常,如果要对数据框执行类似操作,最好将其保存在列表中。有关更多信息,请参见@gregor在此问题How do I make a list of data frames?中的出色答案。
@missuse的注释正确。在您的示例上进行了测试:
dataf <- data.frame(list(a = 1:3, b = c(NA, 3:4)), row.names = c("x","y","z"), stringsAsFactors = FALSE)
dataf2 <- data.frame(list(a = 1:3, b = c(NA, 3:4)), row.names = c("x","y","z"), stringsAsFactors = FALSE)
li <- list(dataf,dataf2)
lapply(li, function(x) sapply(x, function(y) sum(is.na(y))))
> lapply(li, function(x) sapply(x, function(y) sum(is.na(y))))
[[1]]
a b
0 1
[[2]]
a b
0 1