CUNY Bridge Program, R Module, Week 2 Homework

Create a Function for “N choose R”

Define the function

mychoose <- function(n, r) {
    if (n - r < 0) {
        answer <- 0
    } else if (n - r == 0 || r == 0) {
        answer <- 1
    } else if (n - r > 0) {
        nfact <- 1
        for (i in 1:n) {
            nfact <- nfact * i
            nfact
        }
        rfact <- 1
        for (i in 1:r) {
            rfact <- rfact * i
            rfact
        }
        sub <- n - r
        sfact <- 1
        for (i in 1:sub) {
            sfact <- sfact * i
            sfact
        }
        answer <- nfact / (sfact * rfact)
    }
    answer
}

Test the Function

Standard answers

a1 <- mychoose(5,3)
a2 <- mychoose(10,2)

a1 = 10 a2 = 45

Exceptions

e1 <- mychoose(2,4)
e2 <- mychoose(2,2)
e3 <- mychoose(2,0)

e1 = 0 e2 = 1 e3 = 1