[英]In R, how to use a “null” default value for an argument of a function?
這是我當前的代碼:
my.function <- function( my.arg="" ){
if(my.arg == "")
my.arg <- rnorm(10)
return( mean(my.arg) )
}
它返回給我:
> my.function( rbinom(10, 100, 0.2) )
[1] 18.5
Warning message:
In if (a == "") a <- rnorm(10) :
the condition has length > 1 and only the first element will be used
我嘗試使用my.arg=c()
或my.arg=0
,但我總是收到警告或錯誤。 而 R 手冊在這個問題上並沒有多說。
任何想法? 提前致謝!
嘗試
my.function <- function( my.arg=NULL ){
if(is.null(my.arg)) ...
還missing
:
my.function <- function(my.arg) {
if(missing(my.arg)) ...
卡斯滕的做法是正確的。 警告的原因是您正在針對長度為 1 的字符向量 "" 測試 my.arg,因此當 my.arg 是長度 > 1 的向量時會發出警告。如果您真的想測試 my.arg arg 是 "" 你需要做類似的事情
if (length(my.arg) == 1 && my.arg == "")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.