我正在寻找一种确定生长季节的方法,该生长季节包括从春季的最后一个霜冻日到秋天的第一个霜冻日之间大于60天的天数。这个问题的一般版本是这样的。如果我有一个像testVec这样的数字向量,则我希望值的开始和结束范围的项目号,其中项目数为5或更大,并且所有这些都大于0。
testVec <- c(1,3,4,0, 1, -5, 6, 0, 1,3,4,6,7,5,9, 0)
在该示例中,相关的范围是1,3,4,6,7,5,9这是testVec[9]
至testVec[15]
一种选择是:
testVec[with(rle(testVec > 0), rep(lengths * values >= 5, lengths))]
[1] 1 3 4 6 7 5 9
这里的想法是,首先创建小于或等于零且大于零的值的游程。其次,它检查大于零的值的游程的长度是否为5或更大。最后,它为长度大于或等于5的大于零的值的游程子集原始向量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句