【问题标题】:How to read instream data如何读取流内数据
【发布时间】:2018-10-01 07:11:29
【问题描述】:

我知道这是一个非常基本的问题,但我确实遇到了麻烦。

我编写了以下代码,我想做的只是正确读取数据,但我找不到指示 SAS 读取 BMI 的方法。

有两件事我想做。

1),让 SAS 存储包括所有小数在内的整个数字。 2),打印时,我想将数字近似到小数点后两位。

data HW02EX01;
  input Patient 1-2  Weight 5-7 Height 9-10 Age 13-14 BMI 17-26 Smoking $ 29-40 Asthma $ 45-48;
  cards;
14  167 70  65  23.9593878  never           no
run;

注意:我只留下了第一个观察结果,因为显示变得非常丑陋且难以手动编辑。

【问题讨论】:

  • 我不明白你的第一个问题。您当前的代码应该对于您发布的行读取 BMI 很好。如果其他行在同一列中具有 BMI 值,它们也将起作用。
  • 关于问题,如果您将代码缩进 4 个空格(制表符)或单击 {} 图标,它将为您格式化代码,使其清晰易读。您会看到帖子下方的文字以确保其正确无误。您也可以访问How to Ask,查看有关发布好问题的建议。

标签: sas


【解决方案1】:

朋友。

也许下面的代码会有用:

data HW02EX01_;
    input Patient Weight Height Age BMI Smoking : $20. Asthma $10.;
    format BMI 32.2;
    cards;
14 167 70 65 23.9593878 never no
;

作为评论,我想指出一些细节:

  • 如果您的输入数据具有固定长度,请使用您在输入语句中的代码中建议的列读取方法。如果没有,请使用列表读取条目(假设您的输入数据之间有分隔符)。
  • 当 SAS 读取列表形式时,它会转换并保存一个数值的所有数字。因此,您也不必担心读取小数。
  • 要以您喜欢的方式显示数值,您可以使用格式语句来指定值的表示形式。在这种有两位小数的情况下,我们使用格式“w.d”。其中 w 是可能出现的数字的总长度,d 表示要显示的小数位数。应该提到的是,格式不会改变变量的值,只会改变它的表现形式。
  • 使用cards语句时,不必使用run语句。

希望对你有用。

【讨论】:

  • 这很有帮助,谢谢。不过,我还有一些问题。
  • 这很有帮助,谢谢。不过,我还有一些问题。 1),我是初学者,不熟悉您在编码吸烟时使用冒号:$ 20 2),您为什么将长度指定为20? 3), 为什么你将 BMI 的 w.d 指定为 32.2? 4),我希望能够像一个好心人编辑后那样写我的问题。我想知道它是如何完成的,所以如果你能指导我到哪里可以学习这个程序,我会很高兴。
【解决方案2】:

见代码中的cmets,具体是LENGTHFORMATINFORMAT语句的用法来控制数据的输入输出外观。

data HW02EX01;
    *specify the length of the variables;
    length patient $8. weight height age bmi 8. smoking asthma $8.; 


    *specify the informats of the variables; 
    *an informat is does the variable look like when trying to read it in;
    informat patient $8. weight height age bmi best32.;

    *formats control how infomraiton is displayed in output/tables;
    format bmi 32.2 weight height age 12.;

    input Patient $ Weight Height Age BMI Smoking  Asthma ;
    cards;
14 167 70 65 23.9593878 never no
;

run;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    相关资源
    最近更新 更多