3
A
回答
2
試試這個辦法:
x[1:which(x < 0)[1]-1]
4
您可以使用which
找到第一個負號的位置,然後減去1
x[1:(which(x < 0)[1] - 1)]
如果第一個數字是負數,則此簡單方法將失敗。但是我們可以建立一個檢查並根據需要返回一個空向量。
cutNeg <- function(x){
index <- which(x < 0)[1]
if(index == 1) return(integer(0))
x[1:(index-1)]
}
cutNeg(x)
5
另一種選擇是
x[!cumsum(x < 0)]
#[1] 1 4 6 3
+2
非常好的解決方案 –
1
我們還可以使用的cumsum
一個朋友從@ akrun的答案,cummin
其計算累積最小:
x[cummin(x) > 0]
[1] 1 4 6 3
1
搜索 「 - 」 使用grep也適用:
x[1:grep("-", x)[1]-1]
相關問題
- 1. 將矢量另存爲另一個矢量並清除第一個矢量
- 2. 你如何在另一個矢量上反映矢量?
- 3. 如何根據clojure中另一個矢量的值排序一個矢量
- 4. 排序的一類和第二矢量一個矢量應與第一
- 5. 如何從一個矢量的值複製到一個數組?
- 6. 如何存儲在一個矢量
- 7. 如何找到唯一值的矢量從另一個縮放的矢量
- 8. 在一個矢量上的字符串
- 9. 僅在第一個元素上切換
- 10. 從點設置所有矢量值爲零,當第一負值在Matlab
- 11. 一個雙矢量
- 12. R:一個矢量
- 13. 如何從一個矢量收集觀察值,並將其調整爲另一個矢量的值
- 14. 如何將一個空對矢量推回到另一個矢量?
- 15. 如何從r中的另一個矢量中減去一個矢量
- 16. R如何基於值的計數創建新矢量現有矢量的值的第一個實例
- 17. 在md5上產生一個負值
- 18. 在一個角度上移動一個點(矢量)+ Libgdx
- 19. 將一個矢量設置爲另一個矢量
- 20. 通過id和month獲取上一個值,第二個上一個值和第三個上一個值
- 21. 如何從一對矢量中提取第二個元素?
- 22. 我們如何在第一個空值時切換列
- 23. 如何返回一個矢量對象?
- 24. 如何爲矢量矢量創建一個Maybe等價物?
- 25. 用另一個矢量替換矢量中的值
- 26. 如何「解開」一個矢量變量爲幾個變量?
- 27. HOG矢量包含負值
- 28. 如何添加一個auto_ptr到一個矢量
- 29. 我如何複製一個矢量塊到另一個
- 30. 如何在SQL的第一行和最後一個上選擇一個值?
如果你只是刪除括號,你將不再需要該功能(即'x [1:which(x <0)[1] -1]')。但是,我們有兩個相同的解決方案張貼! – 989
當然,但它是一個好主意,使功能 –