gpt4 book ai didi

r - 如何在不迭代的情况下将元素插入向量中的多个位置

转载 作者:行者123 更新时间:2023-12-04 23:18:56 25 4
gpt4 key购买 nike

给定一个向量 u元素和向量 i将索引转换为向量 x ,我们如何插入u的元素进入 x在与 i 中的索引对应的元素之后,没有迭代?

例如

x <- c('a','b','c','d','e')
u <- c('X','X')
i <- c(2,3)
# now we want to get c('a','b','X','c','X','d','e')

我想一步完成(即避免循环),因为每一步都需要创建一个新向量,而实际上这些是长向量。

我希望有一些索引魔法。

最佳答案

我认为只要 i 就应该有效不包含重复索引。

idx <- sort(c(seq_along(x), i))
y <- x[idx]
y[duplicated(idx)] <- u
y
#[1] "a" "b" "X" "c" "X" "d" "e"

编辑
正如@MartinMorgan 在评论中建议的那样,更好的方法是 c(x, u)[order(c(seq_along(x), i))] .

关于r - 如何在不迭代的情况下将元素插入向量中的多个位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32884934/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com