Q1: f1 <- faithful[faithful[,1] > 3.25,] print('number of durations > 3.25:') print(nrow(f1)) print('mean eruption duration for waits > 65:') f2 <- faithful[faithful[,2] > 65,] print(mean(f2[,1])) Q2: makeVecPos <- function(x) { if (any(x <= 0)) stop('must be all-positive') class(x) <- 'vecPos' x } ">.vecPos" <- function(xvp,yvp) { all(as.vector(xvp) > as.vector(yvp)) } u <- c(5,12,13) v <- c(1,88,8) w <- c(2,11,11) uvp <- makeVecPos(u) vvp <- makeVecPos(v) wvp <- makeVecPos(w) print(uvp) print(uvp > vvp) print(uvp > wvp) try: { z <- c(0,88,8) zvp <- makeVecPos(z) }