簡體   English   中英

在 R 中,如何為 function 的參數使用“null”默認值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM