% group_by(Species) %>% summarise(max = Sepal.Width[Sepal.Length == max(Sepal.-6ren">
gpt4 book ai didi

r - 我什么时候应该使用 "which"进行子集化?

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

这是一个玩具示例。

 iris %>% 
group_by(Species) %>%
summarise(max = Sepal.Width[Sepal.Length == max(Sepal.Length)])

# A tibble: 3 x 2
Species max
<fct> <dbl>
1 setosa 4
2 versicolor 3.2
3 virginica 3.8

使用 which() 时它给出相同的输出.
iris %>% 
group_by(Species) %>%
summarise(max = Sepal.Width[which(Sepal.Length == max(Sepal.Length))])
# summarise(max = Sepal.Width[which.max(Sepal.Length)])

# A tibble: 3 x 2
Species max
<fct> <dbl>
1 setosa 4
2 versicolor 3.2
3 virginica 3.8
help(which)说:

Give the TRUE indices of a logical object, allowing for array indices.


==做同样的事情:显示 TRUE & FALSE

那么什么时候 which()对子集有用吗?

最佳答案

"=="NA 结束.试试 (1:2)[which(c(TRUE, NA))](1:2)[c(TRUE, NA)] .

NA未被删除,索引为 NANA (见 ?Extract)。但是,此删除不能由 na.omit 完成。 ,否则您可能会得到 TRUE 的位置可能是错误的。一个安全的方法是更换 NA来自 FALSE然后做索引。但为什么不直接使用 which ?

关于r - 我什么时候应该使用 "which"进行子集化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51914297/

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