Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.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
intersect函数根据输入顺序返回不同的模式_R - Fatal编程技术网

intersect函数根据输入顺序返回不同的模式

intersect函数根据输入顺序返回不同的模式,r,R,也许真正的问题是“是否有人在乎”,但矛盾之处在于: intersect(c(),1:3) integer(0) intersect(1:3,c()) NULL 同样的事情也发生在setdiff上,但这是有意义的,因为setdiff被设计为相对于其两个输入是不对称的。 现在,从intersect的源代码中或多或少可以看出为什么会发生这种情况,因为算法是不对称的,即使两个集合的交集是对称的 我想问题是,当某个父函数依赖于输出模式时,这是否会导致代码混乱 (背景:我收到一些用户的请求,要求修复当前版

也许真正的问题是“是否有人在乎”,但矛盾之处在于:

intersect(c(),1:3)
integer(0)
intersect(1:3,c())
NULL
同样的事情也发生在
setdiff
上,但这是有意义的,因为
setdiff
被设计为相对于其两个输入是不对称的。 现在,从
intersect
的源代码中或多或少可以看出为什么会发生这种情况,因为算法是不对称的,即使两个集合的交集是对称的

我想问题是,当某个父函数依赖于输出模式时,这是否会导致代码混乱


(背景:我收到一些用户的请求,要求修复当前版本的
package:vecsets
,以正确处理空集输入,我希望使输出尽可能与基本函数的类、模式等匹配)

?intersect
,文档似乎暗示需要相同“模式”的向量
c()
为“NULL”。使用
as.integer()
更改
c()
的类似乎有效

class(c())
# [1] "NULL"
class(1:3)
# [1] "integer"
class(as.integer(c()))
# [1] "integer"
intersect(c(1:3), as.integer(c()))
# integer(0)
intersect(as.integer(c()), c(1:3))
# integer(0)