获取data.frame的列长度

Elb*_*Elb -1 r

我有一个由 N 列组成的 data.frame 。这些列的长度不同(即complete.cases),例如Column1:314行,Column2:543行,Column3:124行,...我想检索整个data.frame中每列的长度。有人可以帮我吗?

Dav*_*urg 5

您似乎想计算complete.cases数据集中的每列。这是一个示例数据集

set.seed(123)
(df <- as.data.frame(matrix(sample(c(NA, 1:5), 25, replace = TRUE), ncol = 5)))
#   V1 V2 V3 V4 V5
# 1  1 NA  5  5  5
# 2  4  3  2  1  4
# 3  2  5  4 NA  3
# 4  5  3  3  1  5
# 5  5  2 NA  5  3
Run Code Online (Sandbox Code Playgroud)

这是一个可能的解决方案

sapply(df, function(x) sum(complete.cases(x)))
# V1 V2 V3 V4 V5 
#  5  4  4  4  5 
Run Code Online (Sandbox Code Playgroud)

或者你可以使用colSums和向量化它!is.na

colSums(!is.na(df))
# V1 V2 V3 V4 V5 
#  5  4  4  4  5 
Run Code Online (Sandbox Code Playgroud)