####################
###  1. zadatak  ###
####################

# 1. (a)
apply(USJudgeRatings[c(6,8,9,10,12)], 2, function(x) c("Mean" = mean(x), "SD" = sd(x), "MIN" = min(x), "MAX" = max(x)))

# alternativno

Mean = c(mean(USJudgeRatings$DECI), mean(USJudgeRatings$FAMI), mean(USJudgeRatings$ORAL), mean(USJudgeRatings$WRIT), mean(USJudgeRatings$RTEN))
SD = c(sd(USJudgeRatings$DECI), sd(USJudgeRatings$FAMI), sd(USJudgeRatings$ORAL), sd(USJudgeRatings$WRIT), sd(USJudgeRatings$RTEN))
MIN = c(min(USJudgeRatings$DECI), min(USJudgeRatings$FAMI), min(USJudgeRatings$ORAL), min(USJudgeRatings$WRIT), min(USJudgeRatings$RTEN))
MAX = c(max(USJudgeRatings$DECI), max(USJudgeRatings$FAMI), max(USJudgeRatings$ORAL), max(USJudgeRatings$WRIT), max(USJudgeRatings$RTEN))
M = rbind(Mean,SD,MIN,MAX)
colnames(M) = c("DECI", "FAMI", "ORAL", "WRIT", "RTEN")
M

# 1. (b)

Index = 0.8*USJudgeRatings$INTG + USJudgeRatings$FAMI^2 + USJudgeRatings$ORAL*USJudgeRatings$WRIT + USJudgeRatings$PREP
data = cbind(USJudgeRatings, Index)
data

# 1. (v)

classter1_condition = (USJudgeRatings$INTG > mean(USJudgeRatings$INTG)) & (USJudgeRatings$DECI > mean(USJudgeRatings$DECI)) & (USJudgeRatings$PREP > mean(USJudgeRatings$PREP))
classter2_condition = (USJudgeRatings$INTG > mean(USJudgeRatings$INTG)) & (USJudgeRatings$DECI < mean(USJudgeRatings$DECI)) & (USJudgeRatings$PREP < mean(USJudgeRatings$PREP))
classter3_condition = (USJudgeRatings$INTG < mean(USJudgeRatings$INTG)) & (USJudgeRatings$DECI < mean(USJudgeRatings$DECI)) & (USJudgeRatings$PREP < mean(USJudgeRatings$PREP))

Classter = ifelse(classter1_condition, 1, ifelse(classter2_condition, 2, ifelse(classter3_condition, 3, 4)))
fClasster = factor(Classter, levels = 1:4)
data = cbind(data, fClasster)
data

# 1. (g)

Lista = list(rownames(data[data$fClasster == 1,]), rownames(data[data$fClasster == 2,]), 
             rownames(data[data$fClasster == 3,]), rownames(data[data$fClasster == 4,]))
Lista

####################
###  2. zadatak  ###
####################

# 2. (a)

data(employee, package = "stima")
employee

plot(employee$startsal, employee$salary)
boxplot(employee$salary ~ employee$gender)
boxplot(employee$salary ~ employee$jobcat)

# 2. (b)

Remove <- function(){
  Mean <- mean(employee$salary)
  Median <- median(employee$jobtime)
  
  condition <- employee$salary >= Mean & employee$jobtime <= Median
  
  return (list(employee[condition,], nrow(employee[!condition,])))
}

Remove()

# 2. (v)

apply(employee[c(1, 2, 4,5)], 2, quantile, probs = c(0.25, 0.5, 0.75))