2016-03-24 62 views
0

我必须将格式更改为SAS表格中的单个单元格。也就是说,单元格所在的列的格式为best12.,但在单元格中给定了日期,因此我想使用YYMMDD10.如何将格式更改为SAS表格中的单个单元格

我该如何解决?

在此先感谢。

+0

不包含日期的单元格中的值是什么?可以创建自定义格式来执行您想要的操作,但这只适用于某些情况,例如如果日期值和非日期值之间没有重叠 – Longfish

回答

0

您只能将FORMAT与整列相关联。如果您希望混合类型的单元格格式不同,则需要一个将PUT(函数)值放入的字符列。

将不同的格式与列使用关联。

proc datasets; 
    modify data-set-name; 
    format variables new-format.; 
    run; 
    quit; 
0

下面是如果数据允许,您可以做什么的示例。假设您的数据中最早的日期是2000年1月1日,那么SAS中的数字将保存为14,610(1960年1月1日以来的天数)。因此,如果没有非日期值超过这个数,那么你可以通过多达14610格式化所有值best12.实现你的目标,所有值大于该值作为yymmdd10.

proc format; 
value dtfmt low - 14609 = [best12.] 
       14610 - high = [yymmdd10.] 
; 
run; 

data want; 
input num; 
format num dtfmt.; 
datalines; 
10 
20 
20514 
30 
; 
run; 
0

可以在IF条件检查申请SUBSTR()第一个字符并相应地格式化您的变量。使用INPUT()PUT()

相关问题