如何将提示中输入的值放入表格中

问题描述 投票:0回答:1

我创建了一个名为 &CPF 的提示,在其中输入多个值,我想将输入的所有值放入表中。 Prompt

我尝试了一些方法,但没有任何效果。

数据测试; 设置原始(keep=&TESTE); 运行;

有人知道该怎么做吗?

谢谢指教

sas enterprise
1个回答
0
投票

当您有多值提示时,每个值都存储在其自己的宏变量中。对于您的情况,我们假设您的提示名为

TESTE
。您只想保留用户输入的变量。

假设我们要在 sashelp.cars 上运行它。我们想要保留变量“品牌”、“型号”和“马力”。创建一个名为 TESTE 的测试程序,运行以下代码:

%put _USER_;

这会显示所有用户定义的宏变量。让我们根据提示运行程序并检查日志。

您将看到以下宏变量:

GLOBAL TESTE Make
GLOBAL TESTE0 3
GLOBAL TESTE1 Make
GLOBAL TESTE2 Model
GLOBAL TESTE3 Horsepower
GLOBAL TESTE_COUNT 3

TESTE1-TEST3
保存每个单独的值,
TESTE_COUNT
给出宏变量的总数。您可以使用它来循环并获取每个值。

%macro teste;
    data teste;
        set sashelp.cars(keep=%do i = 1 %to &teste_count.;
                                  &&teste&i
                              %end;
                        );
    run;
%mend;
%teste;

您可以通过创建一个宏,将所有这些宏变量解析为一个以空格分隔的列表,该宏在您指定提示名称时返回它。

%macro get_prompt_values(name);
    %local list;

    %do i = 1 %to &&&name._count;
        %let list = &list &&&name.&i;
    %end;
    
    &list
%mend;

data teste;
    set sashelp.cars(keep=%get_prompt_values(teste));
run;
© www.soinside.com 2019 - 2024. All rights reserved.