## R Inferno [🇷 for BE/BA]

Dear R-Users,

I can’t get my head around this:

loc.stat <- function(x, type, na.rm, distr) {  non.numerics    <- which(is.na(suppressWarnings(as.numeric(x))))  x[non.numerics] <- NA  x <- as.numeric(x)  if (distr == "nonpar") {    switch (type,      pct2.5  = as.numeric(quantile(x, probs=0.025, na.rm=na.rm)),      pct25   = as.numeric(quantile(x, probs=0.25, na.rm=na.rm)),      median  = as.numeric(median(x, na.rm=na.rm)),      pct75   = as.numeric(quantile(x, probs=0.75, na.rm=na.rm)),      pct97.5 = as.numeric(quantile(x, probs=0.975, na.rm=na.rm)))  }  if (distr == "normal") {    mean.x <-mean(x, na.rm=na.rm)    sd.x   <- sd(x, na.rm=na.rm)    n.not.nas <- length(x)-length(which(is.na(x)))    se <- sd.x/sqrt(n.not.nas)    switch (type,      cla2.5  = mean.x+qt(0.025, df=n.not.nas-1, lower.tail=TRUE)*se,      ar.mean = mean.x,      cla97.5 = mean.x+qt(0.975, df=n.not.nas-1, lower.tail=TRUE)*se)  } } set.seed(123456) x <- rnorm(12, 100, 20) median <- loc.stat(x, "median", TRUE, "nonpar") mean   <- loc.stat(x, "ar.mean", TRUE, "normal")

Gives

R> median NULL R> mean [1] 109.7066

Why the heck? Quoting the R-Inferno:

Curly braces are also useful with loops, switch and if.

What? How? Google and R-help were not my friends.

Dif-tor heh smusma 🖖🏼 Довге життя Україна!
Helmut Schütz

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes