R中的一元加/减是什么?
What is unary plus / minus in R?
来自 R 的 Syntax 帮助页面的详细信息部分:
The following unary and binary operators are defined. They are listed
in precedence groups, from highest to lowest.
[some operators]
- + unary minus and plus
[some more operators]
+ - (binary) add, subtract
什么是一元plus/minus?
R中一元加(+)/减(-)和二进制加(+)或减(-)的区别在哪里?
运算符的 arity 表示它运算了多少个参数。一元处理单个参数,二元处理两个参数,三元处理三个参数,等等。
-a
^
那是一元减号。它否定了它后面的 单个 argument/expression 的值。您可能会认为它是一个像 minus(a)
这样的函数调用,它改变了它的参数的符号,结果是 returns。一元加号也存在,但它基本上是一个空操作。
a - b
^
那是二进制负数。它取其两个arguments/expressions的值,并从第一个中减去第二个。您可能会认为它是一个像 minus(a,b)
这样的函数调用,它接受两个参数和 returns 它们的差值。二进制加上returns的总和。
正如@BondedDust 所指出的,在 R(以及其他支持向量处理的语言)中,一些运算符实际上采用向量参数,然后分别对每个元素执行它们的操作。例如,一元负号反转向量的所有元素:
> -(-2:2)
[1] 2 1 0 -1 -2
或作为函数调用:
> `-`(-2:2)
[1] 2 1 0 -1 -2
二进制减法按元素减去两个向量:
> 1:5 - 5:1
[1] -4 -2 0 2 4
或作为函数调用:
> `-`(1:5, 5:1)
[1] -4 -2 0 2 4
R 中的减号运算符是一个有两个参数的函数:
> `-`
function (e1, e2) .Primitive("-")
当两个参数都存在时,它执行二进制减法运算,即从 e1
元素中减去 e2
。当仅存在 e1
时,它作为一元减号运算,并对 e1
.
的元素进行符号反转
这同样适用于加号运算符。必须小心,不要将加号运算符 +
与 sum
函数混淆。 +
对一个(作为一元运算符)或两个(作为二元运算符)向量参数进行 element-wise 运算,而 sum
对其中存在的所有值求和争论。虽然 sum
可以接受任意数量的参数:
> sum
function (..., na.rm = FALSE) .Primitive("sum")
+
运算符只需要一两个:
> `+`(1, 2, 3)
Error in `+`(1, 2, 3) : operator needs one or two arguments
来自 R 的 Syntax 帮助页面的详细信息部分:
The following unary and binary operators are defined. They are listed in precedence groups, from highest to lowest.
[some operators]
- + unary minus and plus
[some more operators]
+ - (binary) add, subtract
什么是一元plus/minus?
R中一元加(+)/减(-)和二进制加(+)或减(-)的区别在哪里?
运算符的 arity 表示它运算了多少个参数。一元处理单个参数,二元处理两个参数,三元处理三个参数,等等。
-a
^
那是一元减号。它否定了它后面的 单个 argument/expression 的值。您可能会认为它是一个像 minus(a)
这样的函数调用,它改变了它的参数的符号,结果是 returns。一元加号也存在,但它基本上是一个空操作。
a - b
^
那是二进制负数。它取其两个arguments/expressions的值,并从第一个中减去第二个。您可能会认为它是一个像 minus(a,b)
这样的函数调用,它接受两个参数和 returns 它们的差值。二进制加上returns的总和。
正如@BondedDust 所指出的,在 R(以及其他支持向量处理的语言)中,一些运算符实际上采用向量参数,然后分别对每个元素执行它们的操作。例如,一元负号反转向量的所有元素:
> -(-2:2)
[1] 2 1 0 -1 -2
或作为函数调用:
> `-`(-2:2)
[1] 2 1 0 -1 -2
二进制减法按元素减去两个向量:
> 1:5 - 5:1
[1] -4 -2 0 2 4
或作为函数调用:
> `-`(1:5, 5:1)
[1] -4 -2 0 2 4
R 中的减号运算符是一个有两个参数的函数:
> `-`
function (e1, e2) .Primitive("-")
当两个参数都存在时,它执行二进制减法运算,即从 e1
元素中减去 e2
。当仅存在 e1
时,它作为一元减号运算,并对 e1
.
这同样适用于加号运算符。必须小心,不要将加号运算符 +
与 sum
函数混淆。 +
对一个(作为一元运算符)或两个(作为二元运算符)向量参数进行 element-wise 运算,而 sum
对其中存在的所有值求和争论。虽然 sum
可以接受任意数量的参数:
> sum
function (..., na.rm = FALSE) .Primitive("sum")
+
运算符只需要一两个:
> `+`(1, 2, 3)
Error in `+`(1, 2, 3) : operator needs one or two arguments