假设我有一个数字向量,其中一个用作键:
key <- c("A", "B")
vec1 <- c("B", "A") #one that changes the order
vec2 <- c("A") #one that is less one
vec3 <- c("A", "B", "C") #one that is plus one
vec4 <- c("A", "B") #this one is identical 我希望支票的内容如下:
if(vec [has all the elements of] key == TRUE)因此,结果会是:
vec1 == TRUE
vec2 == FALSE
vec3 == FALSE
vec4 == TRUE我试过all()但是..。
all(key %in% vec1) #TRUE (as hoped)
all(key %in% vec2) #FALSE (as hoped)
all(key %in% vec3) #TRUE (drat!)
all(key %in% vec3) #TRUE (as expected)我可以在多个条件下完成工作:
all(key %in% vec1) & all(vec1 %in% key) #TRUE
all(key %in% vec2) & all(vec2 %in% key) #FALSE
all(key %in% vec3) & all(vec3 %in% key) #FALSE
all(key %in% vec4) & all(vec4 %in% key) #TRUE我想知道有没有更优雅的方式?
发布于 2017-03-10 02:49:16
如果理解正确,您可以尝试setequal(key, vec)。
对于上面的一组向量,它将生成以下结果:
> setequal(key, vec1)
[1] TRUE
> setequal(key, vec2)
[1] FALSE
> setequal(key, vec3)
[1] FALSE
> setequal(key, vec4)
[1] TRUE发布于 2017-03-10 02:01:43
您可以对键和每个候选向量进行排序,并对排序后的版本进行比较。
https://stackoverflow.com/questions/42702322
复制相似问题