【问题标题】:How to retain numerical variables in proc transpose in SAS?如何在SAS中的proc转置中保留数值变量?
【发布时间】:2017-03-07 03:11:44
【问题描述】:

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

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

【问题讨论】:

  • 同一列中不能有不同的类型。
  • 当您将长数据集转置为宽数据集时,您会在新数据集中为原始数据集中的每一行创建一列。正如@Reeza 指出的那样,这意味着您将在每列中获得数字和字符值的混合,因此变量类型必须是字符。也许如果您发布一些示例数据以及您希望结果的样子,它可能会显示与标准转置不同的东西。
  • 我现在明白其中的逻辑了,感谢@Reeza 和 Longfish。我将我的 char 变量转换为数值变量,这暂时解决了我的问题。谢谢。

标签: sas


【解决方案1】:

您可以分两步完成。

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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-03
    • 2021-08-11
    相关资源
    最近更新 更多