Sas:put 和 input 之间的区别


您可以使用 SAS 中的PUTINPUT函数将变量转换为不同的数据类型。

这是两个函数之间的区别:

PUT函数将字符或数字变量作为输入,并始终输出字符变量

INPUT函数仅将字符变量作为输入,并且可以输出字符或数字变量

以下示例显示了在实践中使用PUTINPUT函数的两种常见方法。

示例 1:使用 PUT 将数值变量转换为字符变量

假设 SAS 中有以下数据集,显示商店连续 10 天的总销售额:

 /*create dataset*/
data original_data;
    input day sales;
    datalines ;
1 7
2 12
3 15
4 14
5 13
6 11
7 10
8 16
9 18
10 24
;
run ;

/*view dataset*/
proc print data = original_data;

我们可以使用过程的内容来显示数据集中每个变量的数据类型:

 /*display data type for each variable*/
proc contents data =original_data;

我们可以看到daysales都是数值变量。

我们可以使用PUT函数将日期变量从数字转换为字符:

 /*create new dataset where 'day' is character*/
data new_data;
    set original_data;
    char_day = put (day, 8.);
    drop day;
run ;

/*view new dataset*/
proc print data =new_data; 

我们可以再次使用proc 的内容来检查新数据集中每个变量的数据类型:

 /*display data type for each variable in new dataset*/
proc contents data =new_data; 

我们已成功使用PUT函数将day变量从数字转换为名为char_day的新字符变量。

示例 2:使用 INPUT 将字符变量转换为数值变量

假设 SAS 中有以下数据集,显示商店连续 10 天的总销售额:

 /*create dataset*/
data original_data;
    input day $sales;
    datalines ;
1 7
2 12
3 15
4 14
5 13
6 11
7 10
8 16
9 18
10 24
;
run ;

/*view dataset*/
proc print data = original_data;

我们可以使用过程的内容来显示数据集中每个变量的数据类型:

 /*display data type for each variable*/
proc contents data =original_data;

我们可以看到, day是一个字符变量, sales是一个数值变量。

我们可以使用INPUT函数将日期变量从字符转换为数字:

 /*create new dataset where 'day' is numeric*/
data new_data;
    set original_data;
    numeric_day = input (day, comma9.);
    drop day;
run ;

/*view new dataset*/
proc print data =new_data; 

我们可以再次使用proc 的内容来检查新数据集中每个变量的数据类型:

 /*display data type for each variable in new dataset*/
proc contents data = new_data; 

我们已成功使用INPUT函数将day变量从字符变量转换为名为numeric_day的新数值变量。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

SAS:如何将字符变量转换为数字
SAS:如何将数值变量转换为字符
SAS:如何将字符变量转换为日期
SAS:如何将数值变量转换为日期

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注