R:如何将数字插入到有序向量中

时间:2016-02-17 04:42:46

标签: r

任何人都可以告诉我如何在有序向量中插入数字。

假设我的向量是x <- c(4, 6, 9, 10, 13, 15, 19),我想在1110之间插入13?你能告诉我如何找出插入的列并找出它在新向量中的位置吗?

非常感谢你!

4 个答案:

答案 0 :(得分:4)

要查找插入位置,您可以执行

v <- c(4,6,9,10,13,15,19)
i <- 11

length(which(v <= i)) + 1
# [1] 5

要插入它,您可以直接插入(连接)新值,然后对结果向量进行排序并找到新值的位置

v <- sort(c(v, i))
which(v==i)
# [1] 5

答案 1 :(得分:4)

使用order,也许你可以这样做:

x <- c(4, 6, 9, 10, 13, 15, 19)
ins <- 11
point <- which(order(c(ins,x))==1)
point
#[1] 5

append(x, ins, point-1)
#[1]  4  6  9 10 11 13 15 19

答案 2 :(得分:2)

如果您的矢量已经订购,另一种获得所需结果的方法是

x <- c(4, 6, 9, 10, 13, 15, 19)
i <- 11
x <- c(x[x < i], i, x[x >= i])
x
[1]  4  6  9 10 11 13 15 19

要查找位置,您可以

sum(x < i) + 1

答案 3 :(得分:0)

你可以做到

> b <- c(x[1:4], 11, x[5:7])
[1]  4  6  9 10 11 13 15 19

在10和13之前插入它们

然后你可以做

> which(x==11)
[1] 5

找到11的位置