gpt4 book ai didi

r - 如何计算逻辑向量中的 TRUE 值

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

在 R 中,计算逻辑向量中 TRUE 值数量的最有效/惯用的方法是什么?我可以想到两种方法:

z <- sample(c(TRUE, FALSE), 1000, rep = TRUE)
sum(z)
# [1] 498

table(z)["TRUE"]
# TRUE
# 498

你更喜欢哪个?还有更好的吗?

最佳答案

最安全的方法是将 sumna.rm = TRUE 一起使用:

sum(z, na.rm = TRUE) # best way to count TRUE values

给出 1。

当逻辑向量包含 NA 值时,其他解决方案存在一些问题。

参见示例:

z <- c(TRUE, FALSE, NA)

sum(z) # gives you NA
table(z)["TRUE"] # gives you 1
length(z[z == TRUE]) # f3lix answer, gives you 2 (because NA indexing returns values)

此外table解决方案效率较低(查看table函数的代码)。

此外,您应该小心使用“表”解决方案,以防逻辑向量中没有 TRUE 值。参见示例:

z <- c(FALSE, FALSE)
table(z)["TRUE"] # gives you `NA`

z <- c(NA, FALSE)
table(z)["TRUE"] # gives you `NA`

关于r - 如何计算逻辑向量中的 TRUE 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2190756/

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