gpt4 book ai didi

r - 计数数据帧中的非NA得到答案作为向量

转载 作者:行者123 更新时间:2023-12-03 11:03:12 24 4
gpt4 key购买 nike

说我有以下R data.frame ZZZ:

( ZZZ <- structure(list(n = c(1, 2, NA), m = c(6, NA, NA), o = c(7, 8, 
8)), .Names = c("n", "m", "o"), row.names = c(NA, -3L), class = "data.frame") )

## not run
n m o
1 1 6 7
2 2 NA 8
3 NA NA 8

我想以 vector 的形式知道我有多少个非NA。我希望答案为:
2, 1, 3

当我使用命令 length(ZZZ)时,我得到 3,它当然是data.frame中 vector 的数量,这是足够有值(value)的信息。

我还有其他在此data.frame上运行的函数,并以 vector 的形式给我答案,但是,长度不能那样操作。

最佳答案

尝试这个:

# define "demo" dataset
ZZZ <- data.frame(n=c(1,2,NA),m=c(6,NA,NA),o=c(7,8,8))
# apply the counting function per columns
apply(ZZZ, 2, function(x) length(which(!is.na(x))))

运行:
> apply(ZZZ, 2, function(x) length(which(!is.na(x))))
n m o
2 1 3

如果您确实坚持要返回 vector ,则可以使用 as.vector,例如通过定义此功能:
nonNAs <- function(x) {
as.vector(apply(x, 2, function(x) length(which(!is.na(x)))))
}

您可以简单地运行 nonNAs(ZZZ):
> nonNAs(ZZZ)
[1] 2 1 3

关于r - 计数数据帧中的非NA得到答案作为向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986101/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com