I'm supposed to make a function where you can insert a value into a vector, but if you attempt to place the value outside of the vector it gives the following output
This is what I have done so far which works for values within the dimensions of the vector, but I cannot figure out how to get the output from the image above
a <- 1:10
insert <- function(x, where, what) {
if(where<x 1) {
append(x,what,where - 1)}
else{
print("Warning message")
}
}
CodePudding user response:
If where
exceeds the length of x
, we can append NA
to x
. You can use warning()
to display warning messages.
I've also changed your if
statement to include length()
, because we are comparing the length of x
with your where
argument.
insert <- function(x, where, what) {
if (where < length(x) 1) {
append(x,what,where - 1)
} else{
warning(paste(where, "exceeds the dimension of the vector"))
append(c(x, rep(NA, where - length(x) - 1)), what, where - 1)
}
}
insert(a, 20, 0)
[1] 1 2 3 4 5 6 7 8 9 10 NA NA NA NA NA NA NA NA NA 0
Warning message:
In insert(a, 20, 0) : 20 exceeds the dimension of the vector