R语言中如何将函数参数n的默认值设为length(series)
在R中为函数参数设置依赖于其他参数的默认值
嘿,这个问题我之前也踩过坑!直接在函数参数定义里写n = length(series)是行不通的——因为当R解析函数定义的时候,series还没有被传入,会直接报错说找不到这个对象。
正确的做法分两步走:
- 先把
n的默认值设为NULL - 在函数内部开头添加判断逻辑,当
n是NULL的时候,自动用length(series)来赋值
修改后的函数定义应该是这样的:
stpr <- function(series, n = NULL, percent, range, lmin) { # 处理n的默认值逻辑 if (is.null(n)) { n <- length(series) } # 这里放你原来的函数内部代码 # ... }
这样做的好处很明显:
- 当你调用函数时不传入
n参数,它会自动使用series的长度作为n的值,比如:stpr(my_data_series, percent = 0.2, range = 5, lmin = 1) - 如果需要自定义
n的值,直接传入即可,完全不影响正常使用,比如:stpr(my_data_series, n = 200, percent = 0.2, range = 5, lmin = 1)
完美适配你说的实际场景需求~
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

