您将如何打印出超出向量的值并在 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
我应该创建一个函数,您可以在其中将值插入向量,但如果您尝试将值放在向量之外,它会给出以下输出
这是我到目前为止所做的,它适用于向量维度内的值,但我不知道如何从上图中获取输出
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