2017-01-29 76 views
2

我正在为两种类型的t检验(成对独立样本)写一个函数。该函数采用参数(n1, n2, ttype)n1n2是样本大小。 ttype确定t检验是否为配对(= 1)或独立(= 2)。让R忽略函数中的参数

我怎样才能使ř理解当n2丢失或is.na(n2)(即,n2= no number in front of it),以输入作为表示ttype = 1和即使存在一个n2“忽略”n2

我使用下面的代码,但不断收到此错误信息:

“的说法 ”N2“ 缺失,没有默认值”

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

它看起来像你可以在函数定义设置'N2 = NULL',然后进行测试'如果(is.null(N2)...'。 – eipi10

+0

或'如果(长度(N2)== 0 )...''假设'n2 = NULL' – kaksat

+0

@ eipi10,谢谢,让我试试这个,所以你建议在'a < - 函数中定义'n2'为空(n1,n2 = Null,ttype )'? – rnorouzian

回答

1

您的代码如果您使用||而不是|应该可以工作。使用||它短路,即它从左到右工作,如果左侧为FALSE,则只评估右侧;然而,与|双方首先评估(如果缺少n2,将导致错误),然后它将它们组合。

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