2017-01-29 77 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 }