Sas:put 和 input 之间的区别
您可以使用 SAS 中的PUT和INPUT函数将变量转换为不同的数据类型。
这是两个函数之间的区别:
PUT函数将字符或数字变量作为输入,并始终输出字符变量。
INPUT函数仅将字符变量作为输入,并且可以输出字符或数字变量。
以下示例显示了在实践中使用PUT和INPUT函数的两种常见方法。
示例 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;
我们可以看到day和sales都是数值变量。
我们可以使用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:如何将数值变量转换为日期