2014-09-05 92 views
3

我熟悉SAS putinput語句中的:~修飾符。在input聲明中的&的行爲也有相當詳細的記錄。但&put陳述中做了什麼?&符(「&」)在put語句中做了什麼?

它似乎與:具有類似的效果,觸發修改後的列表輸出而不是格式化輸出,但我找不到任何此行爲的文檔。

E.g.

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

我沒有看到有關此行爲的任何證據。我的猜測是,它除了冒號之外什麼都不做(因爲冒號對於輸入和輸入都起作用),或者它對輸入效果有一些深奧的影響(儘管我在短暫的測試中看不到任何東西)。如果沒有人在這裏解釋它,你可能會嘗試交叉發送到SAS-L或communities.sas.com,那裏有更多的grognards記得它在舊的SAS版本中的工作方式,它可能會有所作爲。(它也可能與IBM大型機兼容等)。 – Joe 2014-09-06 02:09:39

+0

好的建議。如果他們有這方面的文件,我可能會問SAS自己。 – user667489 2014-09-06 08:23:01

回答

1

從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後面,因此至少有兩個空格必須將輸入數據記錄中的名稱字段與SCORE字段分隔開來。

您還可以使用格式修飾符指定了信息,如下所示:

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

此外,該輸入語句讀取相同數據,以證明你不需要讀的所有值輸入記錄。 +3列指針控件將指針移過分數值以讀取LASTNAME和TEAM的值。

+1

這並不回答這個問題 - 我對'put'語句感興趣,而不是'input'語句。 – user667489 2014-09-19 18:00:33