我有这个数据帧:
df <- data.frame(ref_ws = ref_ws,
turb_ws = turb_ws,
ref_wd = ref_wd,
fcf = turb_ws/ref_ws,
ref_fi = ref_fi,
shear = shear,
turbulence_intensity = turbulence_intensity,
inflow = inflow,
veer = veer)
这是我定义可选参数(shear, turbulence_intensity, inflow and veer
(的函数的一部分
trial_plots <- function(ref_ws,turb_ws,ref_wd,shear,turbulence_intensity,inflow,veer)
变量CCD_ 2是强制性的。
如果我们在函数中定义参数,可选的将为每个参数生成一个单独的图。
例如,如果不使用shear
,我想继续,看看它是否可以生成关于turbulence_intensity
的下一个图,以此类推
目前这是一个错误:
Error in data.frame(ref_ws = ref_ws, turb_ws = turb_ws,ref_wd = ref_wd, :
argument "veer" is missing, with no default
如何将这些参数定义为可选参数?
Hadley建议使用NULL
值作为默认参数,并在函数体中使用is.null
测试:
有时您想要添加一个非平凡的默认值,这可能需要几行代码才能计算。如果需要,您可以使用missing((来有条件地计算它,而不是在函数定义中插入该代码。然而,如果不仔细阅读文档,就很难知道哪些参数是必需的,哪些是可选的。相反,我通常将默认值设置为NULL,并使用is.NULL((来检查是否提供了参数。
来自高级R书籍
我认为这是一个有用的建议,我个人经常使用它。