簡體   English   中英

SAS編程:將數組分配給數據集列

[英]SAS Programming: Assignging an array to a dataset column

我有數據集,我想為我的一列分配一個數組。

舉個例子:

            x     y    z
            2     1    5
            9     3    5
            2     3    4

我想將數組Arrayx分配給變量x,以便Arrayx {1} = 2,Arrayx {2} = 9和Arrayx {3} = 2。

在SAS中可能嗎?

謝謝!

否。SAS數據步驟作為圍繞數據集的外環運行。 您可以通過lagX()函數訪問當前記錄和滯后值。 數組跨行而不是列操作。

這需要您重新考慮如何解決問題。 如果您需要幫助,請提出問題,我相信這里有人會幫助您。

是的,有可能。

data arrayout ;
  set mydata (obs=3) ;
  array arrayx{3} ;
  retain arrayx . ;

  n+1 ;
  arrayx{n} = x ;

  keep arrayx: ;
run ;

如果有10個觀察值怎么辦? 您是否要在數組中“寬” 10個元素? 您可能最好看一下PROC TRANSPOSE。

如果可以使用的話,您要的是SAS / IML中的列向量(SAS / IML與R相似,因為它使用矩陣作為其主要數據對象,而不是按行數據集)。 在基本SAS中,如果不重組數據就無法做到(如Chris所示)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM