gpt4 book ai didi

r - R:如何检查向量是否正在上升/下降

转载 作者:行者123 更新时间:2023-12-03 15:10:06 27 4
gpt4 key购买 nike

vector1 = c(2, 2, 2, 2, 2, 2)
vector2 = c(2, 2, 3, 3, 3, 3)
vector3 = c(2, 2, 1, 2, 2, 2)


我想知道向量中的数字是升/降相同还是降。因此,对于 vector1vector2,它应该是 TRUE,而对于 vector3,它应该是 FALSE。简而言之,如果向量中存在反转,则应返回 FALSE。有没有一种无需编写循环的快速方法?

最佳答案

您可以diff计算元素之间的差异,并all检查它们是否均为非负数:

all(diff(vector1) >= 0)
# [1] TRUE
all(diff(vector2) >= 0)
# [1] TRUE
all(diff(vector3) >= 0)
# [1] FALSE


上面的代码检查所有矢量是否都是不递减的,您可以将 >= 0替换为 <= 0来检查它们是否不递增。相反,如果您的目标是识别不递减或不递增的矢量(也就是它们在同一矢量中没有递增和递减的步长),则有一个简单的修改:

!all(c(-1, 1) %in% sign(diff(vector1)))
# [1] TRUE
!all(c(-1, 1) %in% sign(diff(vector2)))
# [1] TRUE
!all(c(-1, 1) %in% sign(diff(vector3)))
# [1] FALSE

关于r - R:如何检查向量是否正在上升/下降,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31774807/

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