Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 从另一个向量中删除向量中第一个出现的元素_R_Duplicates - Fatal编程技术网

R 从另一个向量中删除向量中第一个出现的元素

R 从另一个向量中删除向量中第一个出现的元素,r,duplicates,R,Duplicates,我有一个字符向量,包括一些重复的元素,例如 v <- c("d09", "d11", "d13", "d01", "d02", "d10", "d13") 我一直在尝试各种方法,例如z您可以使用match和负索引 v[-match(x, v)] 产生 [1] "d09" "d01" "d02" "d13" match仅返回值的第一个匹配的位置,我们在这里使用该位置 请注意,%中的%和是.element是匹配的退化版本。比较: match(x, v) # [1]

我有一个字符向量,包括一些重复的元素,例如

v <- c("d09", "d11", "d13", "d01", "d02", "d10", "d13")

我一直在尝试各种方法,例如
z您可以使用
match
和负索引

v[-match(x, v)]
产生

[1] "d09" "d01" "d02" "d13"
match
仅返回值的第一个匹配的位置,我们在这里使用该位置

请注意,%
中的
%和
是.element
匹配的退化版本。比较:

match(x, v)            # [1] 6 2 3
match(x, v) > 0        # [1] TRUE TRUE TRUE
x %in% v               # [1] TRUE TRUE TRUE
is.element(x, v)       # [1] TRUE TRUE TRUE
最后三个都是相同的,基本上是第一个的强制逻辑版本(事实上,请参见%
中的
%代码和
is.element
)。这样做会丢失关键信息,即
v
x
的第一个匹配位置,只知道
x
值存在于
v

相反,
v%in%x
表示与您想要的不同,即“v
中的哪些值在
x
中”,这将不满足您的要求,因为所有重复值都将满足该条件

v[-match(x, v)]
[1] "d09" "d01" "d02" "d13"
match(x, v)            # [1] 6 2 3
match(x, v) > 0        # [1] TRUE TRUE TRUE
x %in% v               # [1] TRUE TRUE TRUE
is.element(x, v)       # [1] TRUE TRUE TRUE