这是我的数据框:
x1 <- as.numeric(c(1.5, 3.2, 5.1, 6.6, NA))
x2 <- as.numeric(c(3.4, 5.6, NA, NA, 0.9))
x3 <- as.character(c("abc", NA, "cde", NA, NA))
x4 <- as.logical(c(1, 1, 0, 1, 0))
x5 <- as.integer(c(NA, 2, 4, 7, 9))
df <- data.frame(x1, x2, x3, x4, x5, stringsAsFactors = F)
缺失值的摘要统计(百分比):
summary( round(apply(is.na(df), 2, sum)/(nrow(df)), 4) )
我可以按类提取列并应用摘要统计信息4次以获取这些列的唯一类:
unique(sapply(df, class))
我想知道是否有一种很好的方法可以将更少的代码行放在一个按类分割的表中?
感谢您的帮助。
非常感谢
拉米
答案 0 :(得分:1)
我们split
&#39;类&#39;列的序列。获取list
的每一列,数据集的子集,转换为逻辑矩阵(is.na(df[x])
),获取列均值(colMeans
),round
(如有必要)和做summary
。
lapply(split(seq_along(df), sapply(df, class)),
function(x) summary(round(colMeans(is.na(df[x])),4)))