我想检查两个向量是否包含相同的元素,即使它们的排序不相同。例如,函数(我们称之为SameElements
)应满足以下条件:
SameElements(c(1, 2, 3), c(1, 2, 3)) # TRUE
SameElements(c(1, 2, 3), c(3, 2, 1)) # TRUE
SameElements(c(1, 2, 1), c(1, 2)) # FALSE
SameElements(c(1, 1, 2, 3), c(3, 2, 1)) # FALSE
编辑1:指定当向量包含相同元素但频率不同时,函数应返回F。
编辑2:清理问题以省略初始答案,因为这是我的实际答案。
代替更清洁的替代方法,这是已知的解决方案:
SameElements <- function(a, b) return(identical(sort(a), sort(b)))
SameElements(c(1, 2, 3), c(1, 3, 2)) # TRUE
SameElements(c(1, 2, 3), c(1, 1, 3, 2)) # FALSE
编辑:identical
而不是all.equal(...) == T
每个nrussell的建议。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句