【发布时间】:2018-03-26 10:12:18
【问题描述】:
我有两个向量:
a = c(1,1,2,2,3,3,4,4)
b = c(1)
我想从a 中删除b 的第一个 匹配项。因此,这里只删除了a 中的第一个1:
c = c(1,2,2,3,3,4,4)
a 中项目的顺序并不重要。
我试过这段代码:
a[a != b]
a[! a %in% b]
两个结果都是:
[1] 2 2 3 3 4 4.
所有数字 1 都被删除。但是,我只想从a 中删除b 中的特定项目。
如果b = c(1, 1, 2),那么我希望结果
[1] 2 3 3 4 4
a[-(1:3)]
上面的代码可能会导致[1] 2 3 3 4 4的结果。但是,我希望它可以更灵活。例如,当项目的顺序未知或随机时:
a = c(3,4,3,1,2,2,1,4)
我如何使用 R 来做到这一点?
【问题讨论】:
-
类似
a[-(1:3)]? -
谢谢,jaySf。当 a 中的项目顺序固定时, a[-(1:3)] 可能会起作用。但是,例如,如果 a = c(3,4,3,1,2,2,1,4) 怎么办?
-
如果您在
b中没有重复项,您可以使用match,如下所述:Remove first occurrence of elements in a vector from another vector
标签: r