如何确定两个变量在R中是否具有相同的符号

Nat*_*lia 0 r

例如,我有两个变量a和b.他们都是数字.我想检查他们是否有相同的标志(正面或两面都是负面的)或者它们有不同的标志.如果其中一个是0(它们不能都是0),那么我认为它们是不同的签名.我知道我可以写

if (a*b<=0) ...
Run Code Online (Sandbox Code Playgroud)

但我不认为这是一个好方法,因为a和b都是大数字,R给出警告:

Warning message:
In b[i - 1, 4] * b[i, 4] :NAs produced by integer overflow
Run Code Online (Sandbox Code Playgroud)

提前致谢!

amb*_*ina 7

一个好主意是使用sign()R中的函数返回1或者-1如果数字是正数还是没有,0如果数字是0,你可以像这样链接这些:

sign(x)==sign(y)

编辑:感谢关于返回1/-1/0而不是TRUE或FALSE的更正,我完全错过了当我今天早上玩它时.

  • R中的`sign`返回-1,0或1,因此`sign(-1)&sign(1)`等于`TRUE`.所以使用`sign`的正确答案是`sign(x)== sign(y)`. (2认同)