您将如何打印出超出向量的值并在 R 中用 NA 替换它们?

How would you print out the values exceeding the vector and replace them with NA in R?

我应该创建一个函数,您可以在其中将值插入向量,但如果您尝试将值放在向量之外,它会给出以下输出

这是我到目前为止所做的,它适用于向量维度内的值,但我不知道如何从上图中获取输出

a <- 1:10
insert <- function(x, where, what) {
 if(where<x+1) {
append(x,what,where - 1)}
  else{
print("Warning message")  
  }
}

如果where超过x的长度,我们可以将NA附加到x。您可以使用 warning() 来显示警告消息。

我还更改了您的 if 语句以包含 length(),因为我们正在将 x 的长度与您的 where 参数进行比较。

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