trecerea obiectelor pentru a returna rezultate într-o eroare (Programare, R)

luciano a intrebat.

Mă așteptam ca următorul cod să returneze limitele inferioară și superioară ale unui interval de încredere de 95%:

confint95 = function(mean, se)
{
  confint = abs(se*1.96)
  lower = abs(mean-cint)
  upper = abs(mean+cint)
  return(lower,upper) 
}

Dar acest lucru dă acest mesaj:

Error in return(lower, upper) : multi-argument returns are not permitted

Cum pot seta funcția pentru a returna limitele inferioare și superioare ale unui interval de încredere de 95%?

2 răspunsuri
Roman Luštrik

Funcția va returna ultima expresie. Dacă vă gândiți pentru o clipă fără return. Dacă ai dat funcția ca fiind ultima expresie care va fi evaluată

lower, upper

aceasta ar produce o eroare. Dacă aveți IDE, acesta s-ar plânge probabil și de o eroare de sintaxă. Ați rezolva această problemă prin combinarea celor două elemente cu un c așa cum a indicat @Andrie. Ergo, trebuie să treceți un singur obiect. Folosesc adesea liste pentru a transmite diferite structuri de date. În cazul dumneavoastră, un vector este mai mult decât suficient.

Căpitanul Tyler

pentru a returna două sau mai multe rezultate, utilizați „c”

dummy <- function(){
  a <- 1
  b <- 22
  return(a,b)
}

dummy()

# Error in return(a, b) : multi-argument returns are not permitted

dummy2 <- function(){
  a <- 1
  b <- 22
  return(c(a,b))
}

dummy2()
# [1]  1 22

Tags: