我可以使用Apply系列在许多数据框的每一列上获取统计信息

时间:2018-08-28 08:57:38

标签: r dataframe apply sapply

早上好,堆栈溢出

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

我曾考虑过要创建一个数据框列表,但是尽管我希望在列上进行计算,但统计数据仍会集中在列表元素(即数据框)上。有想法吗?

祝你有美好的一天,

安东尼

1 个答案:

答案 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