如何在SAS studio中的SAS数据集中打印新添加的变量

时间:2017-09-26 21:21:32

标签: sas

所以我导入了一个SAS数据集,并在正确格式化时指定了所需的变量。

FILENAME currency '/folders/myfolders/SAS assignment/Assignment4/currency.txt';

data assn4.currency;
    infile currency;
    input 
    @1  currencynotes $3.
    @6  purchasedate mmddyy10.
    @19 purchasevalue 7.0000
    @30 selldate mmddyy10.
    @44 sellvalue 7.0000
    @55 numberofnotespurchased; 

然后我根据其他变量添加了许多SAS变量

data assn4.currency;
 set assn4.currency;
 Timeheld = selldate-purchasedate;
run;

data assn4.currency;
 set assn4.currency;
 value_at_dollar_per_purchase = numberofnotespurchased/purchasevalue;
run;

data assn4.currency;
 set assn4.currency;
 value_at_dollar_per_sale = numberofnotespurchased/sellvalue;
run;

data assn4.currency;
 set assn4.currency;
 profit= value_at_dollar_per_sale-value_at_dollar_per_purchase;
run;

data assn4.currency;
 set assn4.currency;
 PPD = profit/Timeheld;
run;

然后我想要格式化并打印出这些新变量的数据集,但是我不知道这些新变量的间距以及我的ASSN4库中创建的数据集是否有列号而不是我使用的间距信息。导入的txt文件。

data assn4.currency;
 infile currency;
 input 
 @1  currencynotes $3.
 @6  purchasedate mmddyy10.
 @19 purchasevalue 7.0000
 @30 selldate mmddyy10.
 @44 sellvalue 7.0000
 @55 numberofnotespurchased
 @65 Timeheld mmddyy10.
 value_at_dollar_per_purchase 12.00000000
 value_at_dollar_per_sale 12.00000000
 profit 12.0000000000
 PPD 12.0000000000
 ;

当我尝试使用打印出我的数据集时     Proc Print data = assn4.currency;     运行;

所有这些新变量都有。表示缺少信息,而库中创建的新数据集显示这些值。

1 个答案:

答案 0 :(得分:0)

尽管你似乎缺乏一些基本的SAS知识,但我会尽量保持我的答案简单明了。

data步骤中,您使用infile从外部文件中读取。要从SAS数据集中读取数据,请使用set语句。

在第一步中,您通过读取文本文件在名为currency的库中创建了一个名为assn4的数据集。在接下来的几个步骤中,您正确地将变量添加到该数据集,尽管所有这些都可以在一个步骤中完成。

但是,在最后一步中,您将通过再次从文本文件中读取(使用infile语句)来覆盖数据集。然后你当然会丢失你创建的所有变量。

这样做(我认为)你想要实现的目标:

FILENAME currency '/folders/myfolders/SAS assignment/Assignment4/currency.txt';

data assn4.currency;
infile currency;
input 
  @1  currencynotes $3.
  @6  purchasedate mmddyy10.
  @19 purchasevalue 7.
  @30 selldate mmddyy10.
  @44 sellvalue 7.
  @55 numberofnotespurchased
;
Timeheld = selldate-purchasedate;
value_at_dollar_per_purchase = numberofnotespurchased/purchasevalue;
value_at_dollar_per_sale = numberofnotespurchased/sellvalue;
profit= value_at_dollar_per_sale-value_at_dollar_per_purchase;
PPD = profit/Timeheld;
format
 Timeheld mmddyy10.
 value_at_dollar_per_purchase
 value_at_dollar_per_sale
 profit
 PPD 12.
;
run;

请注意,我将格式更改为实际等效的格式。在格式化点之后添加一堆零并不是完全没有。