SAS嵌套格式打印时被截断至40字符的技术咨询
SAS嵌套格式输出被截断为40字符的解决方法
当你用方括号嵌套SAS格式时,输出被截断到40字符是SAS的默认行为——嵌套格式如果没显式指定长度,会沿用系统默认的40字符输出限制,而直接定义的格式会自动匹配标签的实际长度。
解决方法有两种:
1. 定义嵌套格式时显式指定长度
在VALUE语句后通过(LENGTH=)参数设置足够容纳长标签的长度(示例中标签为52个字符,因此设为52):
PROC FORMAT; VALUE longfmt 1 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; VALUE nestfmt (LENGTH=52) 1 = [longfmt.]; QUIT;
2. 使用嵌套格式时指定输出长度
在调用格式时直接追加长度参数,覆盖默认限制:
PROC SQL; CREATE TABLE tbl (col NUM); INSERT INTO tbl VALUES (1); SELECT col FORMAT=longfmt. FROM tbl; SELECT col FORMAT=nestfmt.52 FROM tbl; QUIT;
两种方法都能让嵌套格式输出完整的长标签:如果嵌套格式会被多次复用,推荐第一种方式一次性定义好长度;如果只是单次调用,第二种方式更灵活。
内容的提问来源于stack exchange,提问作者Nik
相关产品推荐
相关产品推荐

