【发布时间】:2019-11-25 17:11:14
【问题描述】:
我目前正在处理 20 年内大约 40 k km2 的大型数据集中的每日相对积雪值(每 km2),并希望获得在特定时期内积雪增加的天数。每天进行一次测量,因此,相对积雪可能会在几天内增加/减少。
但是,与前几天相比,我很难计算/指出我的每日价值减少/增加的次数。我创建了一些假的(但可能的)数据并计算了元素 n 和元素 n + 1 之间的差异:
set.seed(134)
c <- c(sort(runif(6, 0, 1), decreasing = FALSE),
sort(runif(10, 0, 1), decreasing = TRUE),
sort(runif(4, 0, 1), decreasing = FALSE),
0.9, 0.9, 0.9, sort(runif(3, 0, 1), decreasing = TRUE),
sort(runif(8, 0, 1), decreasing = FALSE)) # create fake snow cover fraction data
plot(c)
cdiff <- c [1:length(c) - 1] - c [2:length(c)]
然后我想到用符号来表示代数符号
> sign(cdiff)
[1] 1 1 1 1 1 1 0 1 -1 1 1 1 1 1 1 1 1 1 1 -1 -1 -1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1
我现在有两个问题:
1.) 如何获取代数符号发生变化的新向量的位置
2.) 偶数值可以在 (i) 两个正数、(ii) 两个负数或 (iii) 混合之间找到。在我的示例中,我想将相同的值视为这些值周围的子向量的一部分(在这种情况下:正号但减少积雪分数)。
我的目标是接收一个向量,其中包含与前一天相比值再次变为正数的天数
解决方案不必包含sign(),这正是我认为可能使我更接近解决问题的方法。
提前致谢!
【问题讨论】: