2017-03-07 96 views
0

我有一个SAS数据集,我想转置字符和数值变量。只有区间和组是字符变量,其余是数字变量。但是,proc转置将所有变量转换为字符变量。如何修改下面的程序,以便数值变量在转置过程之后保留为数字和字符变量作为字符?谢谢。如何在SAS中的proc转置中保留数值变量?

proc transpose data=sourceh.test out=sourceh.test2; 
var interval group cap rank volatility correlation significance; 
run; 
+1

在同一列中不能有不同的类型。 – Reeza

+1

将长数据集转置为宽时,将为原数据集中的每一行在新数据集中创建一列。正如@Reeza指出的那样,这意味着您将在每列中得到数字和字符值的混合,因此变量类型必须是字符。也许如果你发布了一些示例数据和你想要的结果,它可能会显示与标准转置不同的东西。 – Longfish

+0

我现在明白逻辑了,谢谢@Reeza和Longfish。我将char变量转换为数值变量,现在解决了我的问题。谢谢。 –

回答

2

您可以分两步进行。

proc transpose data=sourceh.test out=nums prefix=num; 
    var _numeric_; 
    run; 
proc transpose data=sourceh.test out=char prefix=char; 
    var _character_; 
    run; 

仅供参考:您现在得到的字符转换为数字可以是一个有用的功能,我称之为集体VVALUE。