我可以使用 apply 系列来获取许多数据帧的每一列的统计信息吗

Can I use the apply family to get a stat on each column of many dataframes

早上好,堆栈溢出,

可以使用 (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))})

我考虑过制作一个数据框列表,但统计信息随后集中在列表的元素(即数据框)上,尽管我希望它在列上计算。有什么想法吗?

祝你有愉快的一天,

安东尼

一般来说,如果您想对数据帧执行类似的操作,最好将它们保存在列表中。有关详细信息,请参阅@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