Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.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_Operators_Factors - Fatal编程技术网

R 为什么过滤器不能采用数字的因子?

R 为什么过滤器不能采用数字的因子?,r,operators,factors,R,Operators,Factors,我从一些R代码中得到了一些奇怪的行为,我写了一些非零整数的因子 factors<-function(num) c(Filter(function(x) num%%x==0,(-num%/%2):num%/%2),num,-num) 除了非常奇怪的订购(它不应该从-7检查到7吗?)之外,还漏掉了5。我忽略了什么?您遗漏了几个括号 factors <- function(num) c(-num, Filter(function(x) num%%x==0, (-num%/%2):(num

我从一些R代码中得到了一些奇怪的行为,我写了一些非零整数的因子

factors<-function(num) c(Filter(function(x) num%%x==0,(-num%/%2):num%/%2),num,-num)

除了非常奇怪的订购(它不应该从-7检查到7吗?)之外,还漏掉了5。我忽略了什么?

您遗漏了几个括号

factors <- function(num) c(-num, Filter(function(x) num%%x==0, (-num%/%2):(num%/%2)), num)
factors(-15)
# [1]  15   5   3   1  -1  -3  -5 -15

像Filter或Reduce这样的函数是否没有标签?我找不到。有标签,但我认为在这种情况下没有必要。为什么需要将
num%/%2
括起来?是否有操作顺序问题?R使用的顺序是什么?是的,在你的情况下,R考虑<代码>:第一,然后操作符<代码> %/%< /代码>,如果它们不是括号的话。请查看此文档,请参阅帮助(“语法”),了解优先顺序。
factors <- function(num) c(-num, Filter(function(x) num%%x==0, (-num%/%2):(num%/%2)), num)
factors(-15)
# [1]  15   5   3   1  -1  -3  -5 -15
(-15%/%2):(15%/%2)
# [1] -8 -7 -6 -5 -4 -3 -2 -1  0  1  2  3  4  5  6  7