Q
限制參數號
1
A
回答
2
如果k
是一個整數,試試這個:
if (!(k %in% 1:10)) k = 3
如果k
是任何數字,這可能幫助:
k = ifelse(k < 1 | k > 10, 3, k)
爲了使這一個功能,你建議,你會去:
foo <- function(k = 3) {
k = ifelse(k < 1 | k > 10, 3, k)
return(k)
}
1
請注意,有一個小的開銷與ifelse
f這可能無關緊要。雖然,爲了完整,這種解決方案將做到並且更快
> f1 <- function(k = 3)
+ ifelse(k < 1 | k > 10, 3, k)
>
> f2 <- function(k = 3){
+ test <- k < 1 | k > 10
+ k * (!test) + 3 * test
+ }
>
> x <- rnorm(1e5, sd = 10)
> all.equal(f1(x), f2(x))
[1] TRUE
>
> microbenchmark::microbenchmark(f1(x), f2(x))
Unit: milliseconds
expr min lq mean median uq max neval
f1(x) 7.416093 9.543104 13.464866 10.038314 10.823893 80.44003 100
f2(x) 1.594468 2.060443 3.983543 2.224986 3.647207 71.04627 100
+0
謝謝,但我不明白什麼行「K *(!測試)+ 3 *測試」一樣。你可以解釋嗎? – Porteous96
+0
'as.numeric(FALSE)'爲零,'as.numeric(TRUE)'爲一。因此,根據'test'的值,上面給出了'k'或'3'。 –
相關問題
- 1. map.resource,參數限制
- 2. ssrs參數限制
- 3. 與「限制」參數
- 4. Sympy - 帶參數限制的限制
- 5. 帶限制參數的str_replace
- 6. Scala:限制參數值
- 7. 繞過ls參數限制
- 8. SSRS 2005 - 限制參數
- 9. Scala限制類參數值
- 10. NGINX限制查詢參數
- 11. shell參數的限制
- 12. C#SQL參數限制?
- 13. Assert.IsNotNull()應該限制參數
- 14. Postgres限制參數,默認爲無限
- 15. 解決信號和插槽參數限制
- 16. 如何限制OAuth'scope'參數的允許權限(限制範圍)
- 17. Flex TextInput限制:限制標點符號
- 18. 上嘗試-Wtype-限制,以限制一個無符號整數
- 19. SSRS限制參數字符數
- 20. 限制提示參數的數量
- 21. MS Access數據庫的參數限制
- 22. 對構造函數參數的限制
- 23. 合併SQL函數的參數限制?
- 24. 配置modsecurity來限制參數個數?
- 25. Facebook的圖表api「限制」參數的限制
- 26. 星號 - 擴展數量限制
- 27. Socket.io限制數據包編號
- 28. TEXTBOX限制符號,字符和數字
- 29. 繪製符號函數Matlab參數
- 30. 如何在無限極限之間繪製參數函數?
是的,這些都是有益的,我喜歡第二個。我一直在尋找像例如解決方案,但,這是一個乾淨的解決方案提出了另一種解決方案仍然 – Porteous96