1. Append Sum

Write a function named append_sum that has one parameter — a vector named vect.

The function should add the last two elements of vect together and append the result to vect. It should do this process three times and then return vect.

For example, if vect started as [1, 1, 2], the final result should be [1, 1, 2, 3, 5, 8].

append_sum <- function(vect) {
  for (i in 1:3){
    element <- tail(vect, 1) + head(tail(vect, 2), 1)
    vect <- c(vect, element)
  }
  return(vect)
}
print(append_sum(c(1, 1, 2)))
[1] 1 1 2 3 5 8

2. Larger Vector

Write a function named larger_vector that has two parameters named vect1 and vect2.

The function should return the last element of the vector that contains more elements. If both vectors are the same size, then return the last element of vect1.

larger_vector <- function(vect1, vect2) {
  if (length(vect1)>=length(vect2)){
    return(tail(vect1, 1))
  } else{
    return(tail(vect1, 2))
  }
}

print(larger_vector(c(4, 10, 2, 5), c(-10, 2, 5, 10)))
[1] 5

3. More Than N

Create a function named more_than_n that has three parameters named vect, item and n.

The function should return True if item appears in the list more than n times. The function should return False otherwise.

more_than_n <- function(vect, item, n){
  if (length(which(vect==item))>n){
    return(TRUE)
  } else {
    return(FALSE)
  }
}
print(more_than_n(c(2, 4, 6, 2, 3, 2, 1, 2), 2, 3))
[1] TRUE

4. Append Size

Create a function called append_size that has one parameter named vect.

The function should append the size of vect (inclusive) to the end of vect. The function should then return this new vector.

For example, if vect was [23, 42, 108], the function should return [23, 42, 108, 3] because the size of vect was originally 3.

append_size <- function(vect){
  size <- length(vect)
  vect <- c(vect, size)
  return(vect)
}
print(append_size(c(23, 42, 108)))
[1]  23  42 108   3

5. Combine Sort

Write a function named combine_sort that has two parameters named vect1 and vect2.

The function should combine these two vectors into one new vector and sort the result. Return the new sorted vector.

combine_sort <- function(vect1, vect2){
  new_vector <- c(vect1, vect2) %>% 
    sort()
  return(new_vector)
}
print(combine_sort(c(4, 10, 2, 5), c(-10, 2, 5, 10)))
[1] -10   2   2   4   5   5  10  10
LS0tDQp0aXRsZTogIkV4ZXJjaXNlIHdpdGggVmVjdG9ycyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQpgYGB7ciBlY2hvPUZBTFNFfQ0KbGlicmFyeShkcGx5cikNCmBgYA0KDQojIyAxLiBBcHBlbmQgU3VtDQoNCldyaXRlIGEgZnVuY3Rpb24gbmFtZWQgYXBwZW5kX3N1bSB0aGF0IGhhcyBvbmUgcGFyYW1ldGVyIOKAlCBhIHZlY3RvciBuYW1lZCB2ZWN0Lg0KDQpUaGUgZnVuY3Rpb24gc2hvdWxkIGFkZCB0aGUgbGFzdCB0d28gZWxlbWVudHMgb2YgdmVjdCB0b2dldGhlciBhbmQgYXBwZW5kIHRoZSByZXN1bHQgdG8gdmVjdC4gSXQgc2hvdWxkIGRvIHRoaXMgcHJvY2VzcyB0aHJlZSB0aW1lcyBhbmQgdGhlbiByZXR1cm4gdmVjdC4NCg0KRm9yIGV4YW1wbGUsIGlmIHZlY3Qgc3RhcnRlZCBhcyBbMSwgMSwgMl0sIHRoZSBmaW5hbCByZXN1bHQgc2hvdWxkIGJlIFsxLCAxLCAyLCAzLCA1LCA4XS4NCg0KYGBge3J9DQphcHBlbmRfc3VtIDwtIGZ1bmN0aW9uKHZlY3QpIHsNCiAgZm9yIChpIGluIDE6Myl7DQogICAgZWxlbWVudCA8LSB0YWlsKHZlY3QsIDEpICsgaGVhZCh0YWlsKHZlY3QsIDIpLCAxKQ0KICAgIHZlY3QgPC0gYyh2ZWN0LCBlbGVtZW50KQ0KICB9DQogIHJldHVybih2ZWN0KQ0KfQ0KcHJpbnQoYXBwZW5kX3N1bShjKDEsIDEsIDIpKSkNCmBgYA0KIyMgMi4gTGFyZ2VyIFZlY3Rvcg0KDQpXcml0ZSBhIGZ1bmN0aW9uIG5hbWVkIGxhcmdlcl92ZWN0b3IgdGhhdCBoYXMgdHdvIHBhcmFtZXRlcnMgbmFtZWQgdmVjdDEgYW5kIHZlY3QyLg0KDQpUaGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiB0aGUgbGFzdCBlbGVtZW50IG9mIHRoZSB2ZWN0b3IgdGhhdCBjb250YWlucyBtb3JlIGVsZW1lbnRzLiBJZiBib3RoIHZlY3RvcnMgYXJlIHRoZSBzYW1lIHNpemUsIHRoZW4gcmV0dXJuIHRoZSBsYXN0IGVsZW1lbnQgb2YgdmVjdDEuDQpgYGB7cn0NCmxhcmdlcl92ZWN0b3IgPC0gZnVuY3Rpb24odmVjdDEsIHZlY3QyKSB7DQogIGlmIChsZW5ndGgodmVjdDEpPj1sZW5ndGgodmVjdDIpKXsNCiAgICByZXR1cm4odGFpbCh2ZWN0MSwgMSkpDQogIH0gZWxzZXsNCiAgICByZXR1cm4odGFpbCh2ZWN0MSwgMikpDQogIH0NCn0NCg0KcHJpbnQobGFyZ2VyX3ZlY3RvcihjKDQsIDEwLCAyLCA1KSwgYygtMTAsIDIsIDUsIDEwKSkpDQpgYGANCiMjIDMuIE1vcmUgVGhhbiBODQoNCkNyZWF0ZSBhIGZ1bmN0aW9uIG5hbWVkIG1vcmVfdGhhbl9uIHRoYXQgaGFzIHRocmVlIHBhcmFtZXRlcnMgbmFtZWQgdmVjdCwgaXRlbSBhbmQgbi4NCg0KVGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gVHJ1ZSBpZiBpdGVtIGFwcGVhcnMgaW4gdGhlIGxpc3QgbW9yZSB0aGFuIG4gdGltZXMuIFRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIEZhbHNlIG90aGVyd2lzZS4NCmBgYHtyfQ0KbW9yZV90aGFuX24gPC0gZnVuY3Rpb24odmVjdCwgaXRlbSwgbil7DQogIGlmIChsZW5ndGgod2hpY2godmVjdD09aXRlbSkpPm4pew0KICAgIHJldHVybihUUlVFKQ0KICB9IGVsc2Ugew0KICAgIHJldHVybihGQUxTRSkNCiAgfQ0KfQ0KcHJpbnQobW9yZV90aGFuX24oYygyLCA0LCA2LCAyLCAzLCAyLCAxLCAyKSwgMiwgMykpDQpgYGANCiMjIDQuIEFwcGVuZCBTaXplDQoNCkNyZWF0ZSBhIGZ1bmN0aW9uIGNhbGxlZCBhcHBlbmRfc2l6ZSB0aGF0IGhhcyBvbmUgcGFyYW1ldGVyIG5hbWVkIHZlY3QuDQoNClRoZSBmdW5jdGlvbiBzaG91bGQgYXBwZW5kIHRoZSBzaXplIG9mIHZlY3QgKGluY2x1c2l2ZSkgdG8gdGhlIGVuZCBvZiB2ZWN0LiBUaGUgZnVuY3Rpb24gc2hvdWxkIHRoZW4gcmV0dXJuIHRoaXMgbmV3IHZlY3Rvci4NCg0KRm9yIGV4YW1wbGUsIGlmIHZlY3Qgd2FzIFsyMywgNDIsIDEwOF0sIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIFsyMywgNDIsIDEwOCwgM10gYmVjYXVzZSB0aGUgc2l6ZSBvZiB2ZWN0IHdhcyBvcmlnaW5hbGx5IDMuDQpgYGB7cn0NCmFwcGVuZF9zaXplIDwtIGZ1bmN0aW9uKHZlY3Qpew0KICBzaXplIDwtIGxlbmd0aCh2ZWN0KQ0KICB2ZWN0IDwtIGModmVjdCwgc2l6ZSkNCiAgcmV0dXJuKHZlY3QpDQp9DQpwcmludChhcHBlbmRfc2l6ZShjKDIzLCA0MiwgMTA4KSkpDQpgYGANCiMjIDUuIENvbWJpbmUgU29ydA0KDQpXcml0ZSBhIGZ1bmN0aW9uIG5hbWVkIGNvbWJpbmVfc29ydCB0aGF0IGhhcyB0d28gcGFyYW1ldGVycyBuYW1lZCB2ZWN0MSBhbmQgdmVjdDIuDQoNClRoZSBmdW5jdGlvbiBzaG91bGQgY29tYmluZSB0aGVzZSB0d28gdmVjdG9ycyBpbnRvIG9uZSBuZXcgdmVjdG9yIGFuZCBzb3J0IHRoZSByZXN1bHQuIFJldHVybiB0aGUgbmV3IHNvcnRlZCB2ZWN0b3IuDQpgYGB7cn0NCmNvbWJpbmVfc29ydCA8LSBmdW5jdGlvbih2ZWN0MSwgdmVjdDIpew0KICBuZXdfdmVjdG9yIDwtIGModmVjdDEsIHZlY3QyKSAlPiUgDQogICAgc29ydCgpDQogIHJldHVybihuZXdfdmVjdG9yKQ0KfQ0KcHJpbnQoY29tYmluZV9zb3J0KGMoNCwgMTAsIDIsIDUpLCBjKC0xMCwgMiwgNSwgMTApKSkNCmBgYA0KDQoNCg0K