gpt4 book ai didi

r - R中setdiff()函数的异常行为

转载 作者:行者123 更新时间:2023-12-04 17:16:55 26 4
gpt4 key购买 nike

据我了解,setdiff()比较两个向量,并给出出现在一个向量中但不出现在另一个向量中的元素。如果是这样,那么给定这些向量...

thing1 <- c(1,2,3)
thing2 <- c(2,3,4)
thing3 <- c(1,2,3)

...这是我的结果。
setdiff(thing1,thing2)
> [1] 1

setdiff(thing2,thing3)
> [1] 4

setdiff(thing1,thing3)
> numeric(0)
thing1thing2的比较不应该产生与 thing2thing3的比较相同的结果吗?如何实现“外部联接”排序结果(对称集差异),如果我们结合 thing1thing2可以看到所有缺少的元素?优先了解R base中的功能,但也希望使用 data.tables方法。提前致谢。

最佳答案

setdiff提供不对称的差异。在这种情况下,它会按照锡上的指示进行操作。

Shouldn't the comparison of thing1 and thing2 produce the same result as comparing thing2 and thing3?



好吧,不。但是它将产生与比较 thing3thing2相同的结果。顺序很重要。考虑您的前两个示例:

第一个示例询问, thing1中的是什么,而不是 thing2中的是什么?
> setdiff(thing1, thing2)
[1] 1

您可以尝试反向操作, thing2中的是什么,而不是 thing1中的是什么?
> setdiff(thing2, thing1)
[1] 4

但在我看来,您要问的问题是:

What elements of thing1 and thing2 are not shared?



与以下内容相同:

What elements are in the union of thing1 and thing2, but not in the intersection of the two?


> setdiff(union(thing1, thing2), intersect(thing1, thing2))
[1] 1 4

关于r - R中setdiff()函数的异常行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37548297/

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