任何人都可以告诉我如何在有序向量中插入数字。
假设我的向量是x <- c(4, 6, 9, 10, 13, 15, 19)
,我想在11
和10
之间插入13
?你能告诉我如何找出插入的列并找出它在新向量中的位置吗?
非常感谢你!
答案 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的位置