2015-10-22 45 views
0

我有一系列大的(4-或5位)数字,我需要提高到-1的功率。因为这些数字都非常大,所以在提升到这个水平时显然会很小。当我在SAS中使用(使用元素运算符)时,输出中的所有数字都被四舍五入(?)为-1。所以我没有得到任何东西,只有很多负输出。使SAS处理非常小的数字而不舍入

这是否确实是舍入的结果?我可以通过以某种方式格式化输出来解决这个问题吗?如果是这样,这是什么语法?再一次,很抱歉问这些简单的事情,我对SAS完全陌生。

代码:

proc iml; 
    use sasdata.have; 
    read all var {Distance} into D; 
    print D; 
    Dmin = -1##D; 
    print Dmin; 
quit; 
+1

当你说元素运算符时,你的意思是你在IML中吗?或者你只是使用矩阵语言的语言。请提供示例代码/数据。 – Joe

+0

尤其是,我对你的建议感到困惑,他们被舍入为-1。它们可能会舍入为* zero *,具体取决于您如何显示它们,但我看不到它们被舍入为-1。这意味着你有更大的问题,可能是电力运营商的不正确使用。 – Joe

+0

这就是问题所在。我**不希望他们四舍五入到任何东西。我希望它们按原样显示,即所有不同,尽管提高到-1。是的,这是IML。 – Mhoram

回答

1

您的问题是你养-1到5000(或其他)的权力,而不是相反。

proc iml; 
    use work.have; 
    read all var {Distance} into D; 
    print D; 
    Dmin = D##-1; 
    print Dmin; 
quit; 
0

没关系,我想我知道这是什么原因造成的。问题在于操作的顺序!当我将-1 ## D改为D ## -1时,我所有数字的奇异变换为-1停止,最终我得到了我期望的类型的答案。我很抱歉,我现在非常紧张,时间紧迫,因此我的代码中出现了这个愚蠢的错误。