gpt4 book ai didi

r - 删除基于另一个向量的向量条目

转载 作者:行者123 更新时间:2023-12-04 10:39:15 29 4
gpt4 key购买 nike

我有两个向量

a <- c(1:20)
b <- c(2,11,14)

我想根据 b 中的向量条目删除 a 向量中的条目(我想删除第 2、第 11 和第 14 个条目)。

我尝试了几种方法,包括:

c <- a[!a %in% b]

但这不起作用。

有什么建议吗?我试过搜索 SO,但只能根据值找到删除。

最佳答案

您可以简单地索引到 a 并删除 b 中索引处的元素,如下所示:

a <- c(1:20)
b <- c(2,11,14)
a[-b]
[1] 1 3 4 5 6 7 8 9 10 12 13 15 16 17 18 19 20

我创建了 310 万个条目,并随机抽取 100,000 个条目进行删除。可以看出,它的速度非常快。

a <- 1:3100000
b <- sample(a, 100000)
system.time(a[-b])
user system elapsed
0.024 0.003 0.027

已编辑:根据 akrun 和 thelatemail 下面的评论添加此额外检查选项,以处理 b 可能为空的情况。

a[if(length(b)) -b else TRUE]

关于r - 删除基于另一个向量的向量条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37648174/

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