在SAS DS2中,如何创建一个简单的程序来计算bmi

Posted

技术标签:

【中文标题】在SAS DS2中,如何创建一个简单的程序来计算bmi【英文标题】:In SAS DS2, how to create a simple program to calculate bmi 【发布时间】:2022-01-17 00:20:03 【问题描述】:

我正在尝试通过编写一个计算 BMI 的程序来学习一些基本的 DS2 编程。我编写了一个程序,但我收到“错误:第 47 行:尝试从 void 表达式获取值。”。我做错了什么?

这是我的程序:

    proc ds2;
    data _null_;
    dcl double bmi;

    method bmi_calc(double height, double weight);
        dcl double bmi;
        bmi = weight/(height * height);
    end;

    method init();
      weight = 70.5;
      height = 1.68;
    end;

    method run();
        bmi = bmi_calc(height, weight);
        put 'BMI IS: ' bmi;
    end;

    method term();
        put bmi;
    end;

    enddata;
    run;
   quit;

【问题讨论】:

【参考方案1】:

您需要在 ds2 中使用自定义方法做两件事:

    声明要返回的值的类型 返回值

例如,此方法返回值10

method foo() returns double;
    return 10;
end;

要使您的方法有效,您只需说明要返回的变量类型,然后返回该值。

method bmi_calc(double height, double weight) returns double;
    dcl double bmi;
    bmi = weight/(height * height);
    return bmi;
end;

【讨论】:

谢谢斯图!它工作得很好:)

以上是关于在SAS DS2中,如何创建一个简单的程序来计算bmi的主要内容,如果未能解决你的问题,请参考以下文章

创建 SAS 宏来处理任意数量的变量

SAS 程序冷知识——如何在启动sas程序时自动执行一些宏?

sas如何计算相邻观测的差值

计算“.ds2”文件的持续时间?

计算 SAS 可视化分析中行总数的百分比

SAS:如何让饼图显示特定列的平均值?