在SAS中小数点前加零
您好,我需要添加一个零,只有结果和范围是在.2,.3等格式,但不是高值是这样的。最有效的方法是什么 我只尝试使用w.d格式化它,但问题是并非所有值都是相同的,我要做的就是在它们适用的地方添加一个零,而不会弄乱其他值的格式 格式lborres lbornlo lbornhi z7.2在SAS中小数点前加零,sas,Sas,您好,我需要添加一个零,只有结果和范围是在.2,.3等格式,但不是高值是这样的。最有效的方法是什么 我只尝试使用w.d格式化它,但问题是并非所有值都是相同的,我要做的就是在它们适用的地方添加一个零,而不会弄乱其他值的格式 格式lborres lbornlo lbornhi z7.2 如果变量是数字,则可以应用标准格式,并添加前导零 即 如果变量为character,则可以测试第一个字符是否为句点并添加0,或者可以将其转换为数字并以这种方式存储。选项2首先显示为第一个选项覆盖变量,以避免后面显示的
如果变量是数字,则可以应用标准格式,并添加前导零 即 如果变量为character,则可以测试第一个字符是否为句点并添加0,或者可以将其转换为数字并以这种方式存储。选项2首先显示为第一个选项覆盖变量,以避免后面显示的任何问题
data want;
set yourInputDataSet;
*Option 2;
new_numeric_variable = input(yourVariable, 8.);
format new_numeric_variable 8.1;
*Option 1;
if yourVariable =: '.' then yourVariable = catt('0', yourVariable);
run;
和往常一样,如果变量的格式不正确,我会检查数据导入步骤,看看是否可以在那里而不是事后修复它。如果在文本文件上使用PROC IMPORT,则尤其如此。在文本文件中,您可以在读取变量格式和类型时轻松控制它们。您的值是否都小于1?例如
.3
.002
.752
.056
如果没有,您必须为每个单元创建图片格式(千、百、十等)
如果它们都小于1,我相信z5.3会给你-5是总长度,3是小数点的数目
data test;
format A z5.3;
a=.3; output; /* 0.300 */
a=.002; output; /* 0.002 */
a=.752; output; /* 0.752 */
a=.056; output; /* 0.056 */
run;
你需要提供更多的细节,特别是你有什么和你想要什么。给我们举几个例子。因此,您还应该包括您迄今为止尝试过的任何内容。@reeza我无法显示图像,但我添加了更多上下文。如果需要,请键入一个虚构的示例,并确定您拥有的内容与您想要的内容。是否希望值显示为0.5而不是0.5?这就是你们要问的问题吗?他们都是性格使然,意识到格式语句行不通。我更新了sas数据集的图像。运行它并进行检查,注意
=:
的用法,而不仅仅是等号。这很有效。非常感谢您的帮助,这种用法在将来会非常有用
data test;
format A z5.3;
a=.3; output; /* 0.300 */
a=.002; output; /* 0.002 */
a=.752; output; /* 0.752 */
a=.056; output; /* 0.056 */
run;