在SAS中指定数据行中字符值的范围

在SAS中指定数据行中字符值的范围,sas,Sas,在本例中: data testfile; input x $ y $ 9-17 z $ 19-26; datalines; apple banana coconut apple banana coconut apricot blueberry citron ; 9-17和19-26是做什么的?这些是字符,为什么我们要给出一个数字范围? 我从中选取了这个示例,数字是要读取的行中的字符位置。因此,y$9-17意味着您希望从第9列开始,一直到第17列,将9个字

在本例中:

data testfile;
   input x $ y $ 9-17 z $ 19-26; 
   datalines; 
apple   banana    coconut
apple   banana    coconut 
apricot blueberry citron
; 
9-17和19-26是做什么的?这些是字符,为什么我们要给出一个数字范围?

我从

中选取了这个示例,数字是要读取的行中的字符位置。因此,
y$9-17
意味着您希望从第9列开始,一直到第17列,将9个字符串读入变量y。
$
告诉SAS y是一个字符变量,而不是一个数字

好的,但是当我在数据步骤中没有这些范围重新运行时,输出是相同的。那么为什么我们需要指定范围呢?@Victor在您的情况下,您不需要指定范围,但是如果您的数据或类似数据中有空格,您会希望指定范围。如果没有范围,则默认为空格分隔的数据;对于范围,它是固定宽度的。您确定在删除列指示器时蓝莓没有被截断为8美元吗?有几种不同的输入样式或方法、列、格式化、列表/分隔和命名。您可以使用除“命名”之外的任何名称来读取数据。