【问题标题】:Sas create global variable based on cell valueSas根据单元格值创建全局变量
【发布时间】:2022-07-20 03:45:55
【问题描述】:

谁能帮我解决以下问题: 我有一个我过滤为仅包含一行的数据集。我现在想根据特定列中的值创建一个全局变量。

我尝试了以下方法:

data _null_;

last_dat_value =  RWORK.dataset[1,column_name];

run;

数据集如下所示:

date value
20220718 15

我想要一个全局变量中的 15。 SAS只用了两天,提前道歉

【问题讨论】:

  • 当你指的是全局变量时,你是指宏变量吗?你想在程序的其他地方使用它吗?

标签: sas sas-studio


【解决方案1】:

如果你想稍后使用它,你可以在宏变量中创建它,然后用 &variableName 引用它

假设:

  • 数据集名称是 myDataset
  • 变量名是值
  • 数据集中的单个观察/行
  • 宏变量输出名称为 myValue
*create fake data;
data myDataset;
date = mdy(7, 18, 2022);
format date ddmmyyn8.;
value = 15;
output;
run;
data _null_; *_null_ means SAS will not create a data set as output;
set myDataset; *indicate the input data set;
call symputx('myValue', value, 'g'); *create the variable with a global scope;
run;

然后要在以后使用它,比如说过滤所有年龄低于 myValue 的人。

data below15;
set sashelp.class;
where age <= &myValue;
run;

这里有更多关于宏变量的参考资料。 https://stats.oarc.ucla.edu/sas/seminars/sas-macros-introduction/

一般来说,建议在开始时避免使用宏。您应该尽可能在没有宏的情况下进行编码。通常还有其他的做事方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-30
    • 1970-01-01
    • 2016-10-25
    • 2019-09-11
    • 1970-01-01
    相关资源
    最近更新 更多