R 如何在向量中找到一系列共同值(识别生长季节)

标签 r

我正在寻找一种方法来识别生长季节,该生长季节由 Spring 最后一个霜冻日和秋季第一个霜冻日之间的天数大于 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 或更大的值的运行对原始向量进行子集化。

关于R 如何在向量中找到一系列共同值(识别生长季节),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64091829/

相关文章:

r - 获取跨数据框列的频率计数的更有效方法

r - 如何使用 R 在向量中找到第二个非连续出现的值的索引?

直接从 R 读取 .dat 和 .dct

r - 从 Github 导入数据到 R (rdata)

r - Highcharts 3D 与 rCharts

r - 如何计算一个条件与另一个条件的比率

r - 在 R 中,修改类中的值

r - 将经/纬度转换为邮政编码/社区名称

R ggplot 热图使用 geom_tile() : how to sort by year and show all years in y-axis?

r - 如何从同一图上的单个文件中获取多年的 Y 轴数据?