&符号(“&”)在put语句中做了什么?

时间:2014-09-05 23:52:09

标签: sas

我熟悉SAS :~语句中的putinput修饰符。 &语句中input的行为也有相当详细的记录。但是&语句中put做了什么?

它似乎与:具有相似的效果,触发修改后的列表输出而不是格式化输出,但我无法找到此行为的任何文档。

E.g。

data _null_;
  set sashelp.class;
  file 'c:\temp\output.csv' dlm=',';
  put Name Sex Age & 4. Height Weight;
run; 

1 个答案:

答案 0 :(得分:1)

在INPUT声明列表

下的SAS 9.4部分的在线文档中引用
&

表示字符值可以包含一个或多个单个嵌入空格。此格式修饰符从下一个非空白列中读取值,直到指针到达两个连续的空格,变量的已定义长度或输入行的结尾(以先到者为准)。

限制: &修饰符必须遵循它影响的变量名称和$符号。

提示: 如果您在&之后指定了一个信息。修饰符,格式修饰符的终止条件仍然是两个空格。

以下是示例部分中的示例:

读取包含嵌入式空白的字符数据的示例

此DATA步骤中的INPUT语句使用&带有列表输入的格式修饰符,用于读取包含嵌入空格的字符值。

data list;
   infile file-specification;
   input name $ & score;
run;

它可以读取这些输入数据记录:

----+----1----+----2----+----3----+
Joseph   11 Joergensen  red
Mitchel  13 Mc Allister  blue
Su Ellen  14 Fischer-Simon  green

&修饰符跟随它在INPUT语句中影响的变量。由于此格式修饰符遵循NAME,因此至少两个空格必须将NAME字段与输入数据记录中的SCORE字段分开。

您还可以使用格式修饰符指定信息,如下所示:

input name $ & +3 lastname & $15. team $;

此外,此INPUT语句读取相同的数据,以证明您不需要读取输入记录中的所有值。 +3列指针控件将指针移过分数值,以便读取LASTNAME和TEAM的值。