让R忽略函数中的参数

让R忽略函数中的参数,r,function,R,Function,我正在为两种类型的t检验(成对独立样本)编写一个函数。函数采用参数(n1,n2,ttype)n1和n2是样本量t类型确定t检验是成对的(=1)还是独立的(=2) 当n2缺失或为.na(n2)(即n2=前面没有数字)时,如何让R理解,将输入视为表示ttype=1,即使存在n2“忽略”n2? 我正在使用下面的代码,但不断收到错误消息: 缺少参数“n2”,没有默认值“ if(missing(n2)| is.na(n2)){n2如果您使用|而不是|,您的代码应该可以工作。如果使用|它会短路,即它从左到右

我正在为两种类型的t检验(成对独立样本)编写一个函数。函数采用参数
(n1,n2,ttype)
n1
n2
是样本量
t类型
确定t检验是成对的(=
1
)还是独立的(=
2

n2
缺失或
为.na(n2)
(即
n2=前面没有数字
)时,如何让R理解,将输入视为表示
ttype=1
,即使存在
n2
“忽略”
n2

我正在使用下面的代码,但不断收到错误消息:

缺少参数“n2”,没有默认值“


if(missing(n2)| is.na(n2)){n2如果您使用
|
而不是
|
,您的代码应该可以工作。如果使用
|
它会短路,即它从左到右工作,并且仅在左手侧为假时计算右手侧;但是,使用
|
它会首先计算两侧(如果缺少
n2
,则会导致错误),然后将它们合并

if (missing(n2) || is.na(n2)) { n2 <- NA; ttype <- 1 }

if(missing(n2)| is.na(n2)){n2看起来您可以在函数定义中设置
n2=NULL
,然后测试
if(is.NULL(n2)…
if(length(n2)==0)…
假设
n2=NULL
@eipi10,谢谢,让我试试这个,所以你建议在
a Yes中将
n2
定义为NULL。这避免了
参数丢失,没有默认的
错误,然后你只需测试
is.NULL(n2)
(注意
NULL
is.NULL
的拼写)在函数内部决定要实现哪个t测试。
if (missing(n2) || is.na(n2)) { n2 <- NA; ttype <- 1 }