-1
A
回答
3
library(zoo)
x <- c(8,7,6,5,6,7,8,7,6,7,8)
# eliminate runs
r <- rle(x)
r$lengths[] <- 1
xx <- inverse.rle(r)
xx[ rollapply(c(Inf, xx, Inf), 3, function(x) x[2] < min(x[-2])) ]
## [1] 5 6
如果我們知道x
沒有跑,因爲是在問題的情況爲例,我們可以省略的三條線,消除了運行,並在最後的陳述與x
取代xx
。如果您不想考慮端點,請使用-Inf
代替兩個出現的Inf
。
假設輸入c(2, 1, 1, 3)
應該導致輸出1次。
+0
謝謝。幫了很多。 –
0
如果沒有運行,我們可以簡單地檢查與滯後和領先數之差:
library(dplyr)
x[x - lag(x) < 0 & x - lead(x) < 0]
給出:
[1] 5 6
0
我試圖通過使用沒有任何包裝,並得到了結果。
series<-c(8,7,6,5,6,7,8,7,6,7,8)
#We have local minima at 5 and 6.
#Check if series is decreasing in the begining itself
series[2]<series[1]
#If so let us check for minima.
#First check if you have multiple minima
less<-numeric()
#Fill first position and write a loop to check rest of positions.
less<-1
for(i in 2:length(series)){
less[i]<-ifelse(series[i-1]>=series[i],1,0)
}
#First occurance of 0 after 1
checkless<-numeric()
#Fill first position and write a loop to check rest of positions.
checkless<-1
for(i in 2:length(less)){
checkless[i]<-ifelse(less[i-1]==0,1,less[i])
}
#Indexes where 0 exists indicates the change in signs.
which(checkless==0)
#Local minima exists once index before change
which(checkless==0)-1
series[which(checkless==0)-1]
#Check how many cases exists
length(series[which(checkless==0)])
#If number of such cases greater than 1 then we have multiple minima in the series
length(series[which(checkless==0)])>1
相關問題
- 1. 在R中尋找當地最大值和最小值
- 2. 尋找當地的最大
- 3. 遞歸地在列表中尋找最小值
- 4. 查找本地最小值最小值
- 5. 尋找最小值的Matlab代碼
- 6. 尋找最小的辭典陣列
- 7. 地圖 - 尋找最近的價值?
- 8. 尋找最小和最大
- 9. 在數組中尋找最小值,fortran
- 10. 使用遞歸尋找最小值
- 11. 用遞歸函數尋找最小值
- 12. 尋找具有條件蟒最小值
- 13. 尋找成對(並行)最小值
- 14. 有最小值和最小值的需求尋找,然後找到對象
- 15. 尋找最近的小時
- 16. 尋找最小編號
- 17. 尋找最小。在vb.net
- 18. 在優先級隊列(堆)中尋找最小值
- 19. 在Java 2D數組中尋找最小值和最大值
- 20. 尋找最小值最大值股票圖表
- 21. 尋找最常見的值
- 22. MATLAB - 尋找最大/最小值以矩陣的選擇的行/列
- 23. 查找最小值列和最小值列名
- 24. 尋找有最小和最大額定值的用戶?
- 25. 尋找空列值
- 26. 的Java緩存系統 - 尋找地圖的大小
- 27. 尋找NLS多重系列
- 28. 尋找最小值並替換熊貓中的值Dataframe
- 29. 改進尋找整數陣列子陣列最小值的算法。
- 30. 如何找到一系列整數的最小值?
如果在5和6繪製,這個系列是雙傾角。這就是我的意思。糾正。 –