導航:首頁 > 數據處理 > sas如何添加數據集中

sas如何添加數據集中

發布時間:2024-06-01 21:45:05

A. SAS涓濡備綍灝唀xcel鏍煎紡鐨勬枃浠惰漿鎹涓篠AS鏁版嵁闆

proc import out=dz.cecus_h錛 /*瀹氫箟杈撳叆SAS鏂囦歡鐨勫悕縐*/
datafile=d:\data\test1.xls; /*瀵煎叆瑕佽漿鎹㈢殑excel鏂囦歡*/
sheet=sheet1; /*excel鏂囦歡鎵鍦ㄨ〃鍗曠殑鍚嶇О*/
getnames=YES; /*鎸囧嚭絎涓琛屾槸鍚︽湁瀛楁靛悕*/run;LIBNAME dz 'd:\data';
data dz.tests; /*鍒涘緩鏂版暟鎹闆*/
set dz.cecus_h;
length c_names $20.; /*娣誨姞鏂板睘鎬*/
c_names='USA'||trim(name); /*鏂板睘鎬х殑瀹氫箟*/run;proc print data=dz.tests(firstobs=1 obs=3); /*杈撳嚭鐨勫叾瀹炶板綍涓虹涓鏉″埌絎涓夋潯*/run;

B. 怎樣在sas數據集中選取某些數據行形成新的數據集

看你的選取條件了。
1。根據行數來選:
data test;
set oldset;
if _n_=10 then output;
if id="001" then output;
run;
輸出第10行的數據行和ID="001"的數據行並形成數據集test;
2。用where語句
3。用firstobs和obs的組合來截取一部分數據行
data test;
set oldset(firstobs=10 obs=1000);
run;

C. 怎樣在sas數據集中選取某些數據行形成新的數據集

if _N_=1 then output;
用這樣的語句將第一行輸出進另外一個數據集。
也可以用如下語句實現將多行輸入進另外數據集(這里是第一、第二、第四行的意思)
if _N_ in (1,2,4) then output;

D. Lesson 1 數據集的建立

程序的基本組成

1 數據步

2 過程步

1 在SAS直接輸入

注意事項

2 引用外部數據

文件--導入數據

SAS中的變數只有兩種類型:字元型(character)和數值型(numeric)。

日期是被看作是數值型,所有日期型變數被作為是輸入日期與1960年1月1日之差。如1980-1-1, SAS會認為這個值是7305。

不同類型的變數在input語句輸入時需要指定相應的格式

包括數值與日期

如果你想讓SAS有選擇地讀取你的數值,可以在變數後加上w.d的格式。其中,w表示數值的位數(包括小數點),如2.3的位數是3;d表示數值的小數點位數。

輸入格式是給SAS讀的,輸出是給使用者讀的。

見上述。使用 input input搭配informat 。不想改變輸入值,不要在輸入格式中定義寬度。

大致同輸入格式。在data步,在input語句與cards之間使用 format

完整的格式應該是$ < w. >。

必須在變數名後加"$";w表示位元組數(1個中文佔2個位元組)。

結果為:

w.d 的理解:

comma w.d 可將數值的整數部分自右向左每三位用逗號隔開,當數值位數較多時,這是比較標準的表示方式。

例如,輸出格式為 comma7.1 時。

日期有兩種類型:數字、日期格式。

日期型變數輸入格式與輸出格式大致相同,但 輸出格式允許 在寬度值前加一個字母,表示日期的分隔符號。 但不能用於date7.或date9.等格式。

日期格式

分隔符號

invalue 輸入看「 原值

value 輸出看「 新值

結果為:

說明一下,"09.99%"的理解是:

所得結果為:

原因是 指定寬度後,空格也成為字元的一部分 。修改方式如下:

缺失值用 「 . 」表示。

結果為

用do循環輸入數據

其中的語句若使用input,則必須加上output。

例如1-12月是連續加1的規律。

未使用do循環時:

由於count具有加1的規律,使用do循環後:

用@符號

產生新變數前,對其進行寬度限定,使用length

無length語句:

有length語句:

SAS數據都是存放在資源管理器的邏輯庫中。邏輯庫中有SAS自帶的6個文件夾,用來存放不同類型的數據。
理論上,我們在用data語句起名字時,還需要告訴SAS建立的數據集是放在哪個文件夾里。如,data sasuser.fh;表示建立數據集fh,放在sasuser這個文件夾,再如data work.fh;表示建立數據集fh,放在work這個文件夾。
SAS默認,如果data語句中沒有加文件夾名字,就是 默認為存放到臨時文件夾work 中,也就是說,data fh;與data work.fh;是完全等同的。當關閉sas時work內的數據集將清空。

相當於把建立的數據集存放到硬碟的一個文件夾中。具體主要包括三個步驟:

方式一:菜單中新建
[1]在本地硬碟建立一個文件夾作為數據集存放處(假設路徑為g盤目錄下的mysasfile文件夾)
[2]邏輯庫處右鍵新建新庫並命名(假設是mydir),路徑瀏覽選擇上述文件夾
[3]編輯器處添加數據集

方式二:編輯器中新建,並與邏輯庫關聯
[1]同上
[2]編輯器中新建新庫,並添加數據集

方式三:編輯器中新建

調用硬碟上的SAS數據集
[1]首先要知道硬碟上的文件夾位置及名稱
[2]]利用libname語句讀取相應位置的文件夾中的文件

E. spss使用方法

要是連軟體的安裝和打開都要我啰嗦的話,我勸您還是買一套洪恩的《開天闢地》好好熱熱身先。

SAS 8.2的界面中間是三個並排(或層疊)的窗口,那個叫做Program Editor的窗口(窗口標簽為Editor)就是用來輸入SAS語句的,編程操作的所有內容都是在該窗口內完成的,各位還是要跟它先多熟悉一下。

(一)數據集(dataset)和庫

統計學的操作都是針對數據的,SAS中容納數據的文件稱為數據集,數據集又包含在不同的庫(暫且理解為資料庫吧)中。SAS中的庫分為永久性和臨時性兩種。顧名思義,存在於永久庫中的數據集是永久存在的(只要你不去刪除它),臨時庫中的數據集則在你退出SAS後自動被刪除。至於SAS中庫的概念,最簡單的理解就是一個目錄,一個存放數據集的目錄。

數據集的結構完全等同於我們一般所理解的數據表,由欄位和記錄所構成,在統計學中我們習慣將欄位稱為變數,在後面的內容中欄位和變數我們就理解為同一種東西吧!建立數據集的方法很多,編程操作中有專門的數據讀入方法來建立數據集,但需要將數據現場錄入,費時費力。如果數據量大,我勸各位還是先以其它方法將數據集建好,否則程序語句的絕大部分會浪費在數據的輸入上。

What are 其它方法?各位是不是去參考一下別的書籍或資料。要不您是不是可以等一等,我准備若干年後出一本SAS操作大全。

(二)SAS程序概述

和其它計算機語言一樣,SAS語言(稱為SCL語言,SAS Component Language)也有其專有的詞彙(即關鍵字)和語法。關鍵字、名字、特殊字元和運算符等按照語法規則排列組成SAS語句,而執行完整功能的若干個SAS語句就構成了SAS程序。

SAS程序包括多個步驟和一些控制語句,一般情況下均包括數據步和過程步,一個或多個、數據步或過程步,它們之間任何形式的組合均可成為一段SAS程序,只要能完成一個完整的功能。通常情況下SAS程序還包括一些全程語句,用以控制貫穿整個SAS程序的某些選項、變數或程序運行的環境。

SAS程序的語句一般以關鍵字開始,以一個分號結束,一條語句可佔多行(SAS每看到一個分號,就將其以前、上一個分號以後的所有東東當作一條語句來處理,而不管他們處在多少個不同的行中)。SAS語句對字母的大小寫不敏感,你可以根據個人習慣決定字母的大寫或小寫。

1. 庫名(庫標記)的定義

為了保存寶貴的數據和方便操作起見,我習慣於指定自己的庫名及其路徑(目錄),因為SAS系統中已有的永久庫(SASUSER)無論庫名還是其對應的路徑都太過繁瑣,使用太不方便。程序中用到的數據,都可以永久的保存於該路徑下,保證以後可以重復使用。指定庫名的語句為全程語句,其格式如下:

Libname 庫名 『路徑』;

例如我們指定的庫名為「a」,路徑為:「e:\data\」,SAS語句如下:

libname a 『e:\data\』;

2. 數據步

SAS的數據步以data語句開始,用於創建和處理數據集。Data語句以關鍵字「data」開始,格式如下:

data 數據集名;

例如:data a.case; 將創建在庫a中名為case的SAS數據集,語句執行後你可在與庫a對應的目錄下看到剛剛建立的數據集文件case。

Data語句所指定的數據集,一般都是以「庫名.數據集名」的格式出現的,也可以單獨的「數據集名」出現,此時的數據集系統默認為是臨時庫中的數據集,退出系統後將會被刪除。

data語句有兩個重要的功能,標志數據步的開始和命名將要創建的SAS數據集。

除data語句外,數據步一般情況下還包括infile語句、input語句以及datalines語句等。在不同的數據輸入方式下對於它們的使用方式也不一樣。

SAS程序有兩種常見的數據輸入方式,即從外部文件讀入和直接輸入兩種方式。

(1)外部文件讀入方式

數據若已經包含在某個外部文件(文本文件或數據文件)中,可用此方法輸入數據到數據集文件中。

在以上介紹的data語句後,寫入以下語句:

infile 『外部文件的所在位置及名稱』 選項;

input 變數名1變數名2 …變數名n;

infile語句用於從外部文件讀入數據,必須出現在input語句之前。它的功能是指定一個包含原始數據的外部文件。

input語句用於向系統表明如何讀入每一條數據記錄。它的主要功能有:讀入由語句指定的數據列,為相應的數據域定義變數名,確定變數的讀入模式。

例如:

libname a 『e:\data\』;

data a.student;

infile 『e:\data\student.txt』;

input name height weight;

以上程序將目錄「e:\data\」下的文本文件「student.txt」中的數據輸入數據集student中,該數據集存放於目錄「e:\data\」下。

(2)直接輸入方式

數據量較少或操作者意志力堅強的情況下採用此種輸入方式,在data語句之後寫入如下語句:

input變數名1變數名2 …變數名n;

datalines;(在以前的版本下為cards,新版本下兩者可通用)

… … … …(數據行)

… … … …(數據行)

… … … …(數據行)

;

datalines語句用於直接輸入數據,標志著數據塊的開始。

注意:這里的數據行中數據之間以空格分隔,當然也可以其它東東如逗號等來分隔,這里大家先以空格來分隔好了。因為不同的分隔方式下input語句要採取相應的控制選項,這些我們以後再討論,這里我們還是省省力氣吧。另外數據行輸完後不能像其它語句那樣直接在後面加上分號,而要另起一行輸入分號,這樣SAS才認為這是在輸入原始數據而不是在搞別的什麼。

例如:

libname a 『e:\data\』;

data a.student;

input name $ height weight;(name後面的$符號表示變數name為字元型變數)

datalines;

Linda 171 51

Mary 168 50

Selinna 169 49

;

以上程序將直接建立數據集文件student,該數據集文件存放於目錄「e:\data\」下。

3. 過程步

SAS程序的過程步表示一個處理過程,如排序、T檢驗、方差分析等等。過程步以關鍵字proc開始,後面緊跟著過程名,用以區分不同的程序步,並以關鍵字run結束。

一般的格式如下:

proc 過程名 選項列表;

……(其它語句);

……(其它語句);

run;

SAS程序中涉及的過程多達數百種,實現統計功能時常用的過程也有數十種之多,現將最為常用的過程名稱及其所能實現的功能列入下表(表1.1),以便各位提前熱熱身。

表1.1 常用的過程名稱及其功能

過程名
功 能

Sort
將指定的數據集按指定變數排序

Print
將數據集中的數據列表輸出

tabulate
將數據按照指定的分類變數以表格的形式分類匯總

Means
對指定的數值變數進行簡單的統計描述

Freq
對指定的分類變數進行簡單的統計描述

Ttest
對指定的變數做t檢驗

Anova
對指定的變數做方差分析

npar1way
對指定的變數做非參數檢驗

Reg
對指定的變數做回歸分析

Corr
對指定的變數做相關分析

Discrim
對指定的變數做判別分析

Cluster
對指定的變數做聚類分析

Chart
繪出低解析度的統計圖

4. 幾個常用的重要過程

在進入一般統計學功能實現的內容之前,有關數據預處理和執行重要公共功能的過程大家有必要預先掌握,這里選出幾個常用的和重要的過程進行討論。

(1)對SAS文件進行操作的datasets過程

datasets過程是對數據文件進行管理操作的工具,利用它我們可以實現以下功能:

將SAS文件從一個庫中拷入另一個庫中;

對SAS文件進行重命名;

修復損壞的SAS文件;

刪除SAS文件;

列出某一SAS庫中所有的SAS文件;

列出一個SAS數據集的屬性,如最後修改時間、數據是否壓縮、數據是否索引等;

對SAS文件進行設置密碼的操作;

向SAS數據集添加記錄;

對SAS數據集的屬性以及數據集內變數的屬性進行修改;

創建或刪除SAS數據集的索引;

創建並管理SAS數據集的核查文件;

創建或刪除SAS數據集的完整性規則。

datasets過程的一般格式如下:

proc datasets <選項列表>;

age 當前文件名 相關文件名列表</選項列表>;

append base=數據集名 <data=數據集名 其它選項>;

audit 文件名<(操作密碼)>; initiate;<其它代碼;>

change 舊文件名1=新文件名1 <…舊文件名n=新文件名n> <選項列表>;

contents <data=數據集名> <其它選項>;

out=庫標記 <其它選項>;

exclude 文件名 <其它選項>;(該語句只能在語句後出現,不能和select語句同時出現)

select 文件名 <其它選項>;(該語句只能在語句後出現,不能和exclude語句同時出現)

delete 文件名 <其它選項>;

exchange文件名1=交換文件名1 <…文件名n=交換文件名n> <選項列表>;

modify 文件名 <選項列表>;

<modify語句之從屬語句>;

repair文件名 <選項列表>;

save文件名 <選項列表>;

run;

是不是太繁瑣了,我都有些不耐煩了。不過我還是得寫,已經寫了嘛!不忍心浪費掉,最起碼可以用來充充數,擴大一下篇幅。至於各位,嫌煩的可以略過此部分,想用的時候再來溫習也不遲。下面我就不厭其煩地向各位介紹一下各選項及各條語句的含義和用法。

proc datasets語句後各選項的含義及用法見下表(表1.2)。

表1.2 proc datasets語句後各選項的含義及用法

選項
含義及用法

alter=轉換保護密碼
SAS文件設置有轉換操作密碼時用以驗證操作的合法性,密碼正確時代碼才會被執行

details/nodetails
控制有關SAS文件的詳細信息顯示與否,前者為顯示,後者不顯示,默認值為後者

force
此選項具有兩個功能:(1)在過程步的語句存在錯誤時仍然強製程序的執行;(2)在append語句中,兩個數據集的變數不完全相同時仍然強制append語句的執行。

gennum=
控制對衍生數據集的處理方式,等號後可為all, hist, revert或某一整數

kill
此選項表示刪除待處理的庫中的所有文件,應慎用

library=庫標記
用以指定所要處理的庫

memtype=成員類型
指定處理所針對的庫成員類型(文件類型),默認值為all(所有類型)

nolist
在日誌文件中禁止對所處理文件目錄的顯示

nowarn
在語句中指定的文件不存在等情況下,禁止顯示出錯信息,強製程序繼續執行

pw=操作密碼
SAS文件設置操作密碼時驗證操作的合法性(包括讀、防寫以及轉換保護的文件)

read=讀保護密碼
SAS文件設置讀保護密碼時驗證操作的合法性

age語句用於批量地重命名文件,按照當前文件和相關文件的排列順序,依次將後一個文件名重命名給前一個文件,結果是最後一個文件被刪除,當前文件名被廢棄。

對此語句我所了解的就這么多,而且還是通過試驗得出的結論,但總感覺還是理解的不對,哪位若有高見還請不吝賜教。

append語句執行向數據集添加記錄的功能,選項「base=數據集名」用以指定要添加記錄的數據集,「data=數據集名」則指定所要添加的記錄所在的數據集,此選項若省略則默認為當前數據集(最近一次操作的數據集)。

audit語句用於對文件的核查,生成核查文件並對其進行管理;change語句以新文件名替換舊文件名;contents語句用於顯示指定數據集或當前數據集的各種屬性;語句用於將當前庫中相應的文件拷貝到指定的庫中,選項「out=庫標記」用來指定文件要拷貝到的目標庫;delete語句用於刪除指定的文件;exchange語句的功能是將等號前後兩個文件的文件名進行互換;modify語句用於修改文件各方面的屬性;repair語句用於對指定的文件(受到過某種損壞)進行修復,使其恢復到可以使用的狀態;save語句的功能是將其指定的文件保留,當前庫中的其他所有文件則被刪除。

(2)對數據文件中記錄進行排序的sort過程

sort過程的功能是對指定數據集中的記錄按照指定的變數進行排序。由於諸多過程有對數據集記錄進行排序的需要,比如過程步中存在by語句(用以將數據文件分割為若幹部分)的情況下,就需要按照by語句後的變數對數據先行排序,所以sort過程非常有用,而且非常常用。

sort過程的一般格式如下:

proc sort 選項列表;

by <descending> 變數名1 <變數名2 … 變數名n>;

run;

proc sort語句後各選項含義及其用法見下表(表1.3)。

表1.3 proc sort語句後各選項含義及其用法

選項
含義及用法

data=數據集名
用以指定sort過程所要處理的數據集,若省略則默認為最近建立或處理的數據集

date
此選項指定在不改變文件創建日期和修改日期的條件下對文件進行排序操作

out=數據集名
將排序後文件以指定的文件名存儲,原文件不進行任何修改,若無此選項則將原文件覆蓋

sortseq=排序依據
指定對字元型變數排序時依據的標准

reverse/equals/noequals
指定輸出數據中的排序方式,三者分別表示將字元變數的次序翻轉顯示,在排序變數的各水平內部次序保持不變,在排序變數的各水平內部允許次序的改變

nopkey/noprecs
指定重復變數的消除方式,前者表示除去排序變數值重復的記錄,後者表示除去所有變數值重復的記錄

sortsize=
用以指定可用最大內存的大小,等號後為表示內存大小的數值及單位,比如10m

force
用以強制執行重復排序(對已建立索引的文件排序)過程

tagsort
指定在臨時文件中僅存儲排序變數和記錄編號,以減少對磁碟空間的使用

by語句即用以指定排序所要依據的變數,變數可為數值型也可為字元型,其後可指定多個變數,sort過程在按照靠前的變數進行排序的情況下再按照靠後的變數進行排序。by語句中每個變數前可用descending/ascending選項來指定按照其排序的方式(降序或升序),默認狀態為升序。

(3)將數據文件輸出顯示的print過程

print過程的功能是將SAS數據集的記錄以一定的方式顯示到輸出設備(顯示屏),可以顯示其全部的變數或部分變數。利用此過程,你可以創建從簡單列表到可進行數據匯總的各種報告的各種不同的表單。

print過程的一般格式如下:

proc print 選項列表;

by <descending> 變數名1 <變數名2 … 變數名n 其他選項>;

pageby 變數名;

sumby 變數名;

id 變數名;

sum變數名;

var變數名;

run;

proc print語句後可跟的選項含義及其用法見下表(表1.4)

表1.4 proc print語句後選項含義及其用法

選項
含義及用法

contents=文本
用以指定html內容文件中指向輸出的鏈接的標識文本,等號後可為任何文本

data=數據集名
指定所要處理的數據集,等號後為數據集文件名

double
指定在相鄰的記錄間插入一空行

n=字元串
在報告的末尾或by變數各水平分組的末尾顯示顯示記錄的數目,並以等號後的字元串對其進行標識

noobs
禁止記錄編號在報告中的顯示

obs=列標題
用以指定記錄編號所在列的列標題

round
對未進行格式化的數值變數進行四捨五入,統一格式化為帶兩位小數的十進制數值

rows=page
規定頁面格式,目前』page』是此選項唯一可用的值,表示在每一頁中只顯示一條記錄的一行變數值,即一行中顯示盡可能多的記錄數

width=列寬度
指定列的寬度,可取的值有』full』,』minimum』,』uniform』,』uniformby』等,

heading=方向
取值可為v(vertical)或h(horizontal),表示列標題顯示的方向(橫向或縱向)

label
指定以變數標識作為相應的列標題,否則以變數名作為列標題

split=字元
首先此選項指定以變數標識作為列標題,以指定的字元作為列標題換行的標志

style=類型元素
指定報告中特定位置所要應用的類型元素(涉及很多內容,詳細內容略)

by語句在所有過程中的用法都相同,即將數據集分割為若干小數據集分別進行處理。pageby語句用來控制換頁時變數的顯示方式,對於其後所指定的變數,相同的值不會顯示在不同的頁中,該變數某一值的記錄在一頁的剩餘部分顯示不下時,則從該值的第一條記錄開始換行顯示。sumby語句的作用和pageby語句相似,只不過是將換頁的動作換為求和,對指定變數的每一值計算var變數的總計值。id語句的作用是用指定的變數值代替記錄編號對每一條記錄進行標識。sum語句用於指定報告中要進行求和操作的變數,var語句用於指定要在報告中顯示的變數。

以上過程作用較為普遍,使用頻率較高,有必要預先了解,以便於後面所討論內容的順利進行。

為節省篇幅,這里不進行實例演示。內容過於枯燥,可能的錯誤也難免,還請各位多多包涵。

SAS程序操作的大概情況就草草的這樣介紹一下吧,說得太多的話我怕各位沒有耐心看下去。更多的內容我想還是留在實際的例子中來介紹,這樣大家可以好好的切身體會一下,然後就會印象深刻,實際運用起來也就得心應手了。

F. SAS 中怎麼把一個數據集中的某個變數 添加到另一個數據集中謝謝高手指教。

如果40多個變數只需要添幾個到另一數據集,用KEEP STATEMENT 保留你要的變數1 變數2:
data work.datatemp (KEEP = variable1 variable2);
SET sas.datastored;
run;

如果40多個變數要添大多數的變數名到另一數據集,用DROP STATEMENT 舍掉你不要的變數3 變數4:

data work.datatemp (DROP = variable3 variable4);
SET sas.datastored;
run;

閱讀全文

與sas如何添加數據集中相關的資料

熱點內容
word狀態欄的信息不包括什麼 瀏覽:969
刑事案簡易程序要多久 瀏覽:211
各視頻會員怎麼代理 瀏覽:423
北京怎麼運作會計代理記賬 瀏覽:794
微信小程序有什麼游戲經營類 瀏覽:725
代理市長什麼時候出現 瀏覽:813
三流產品怎麼引流 瀏覽:340
人口遷移數據為什麼不能查詢 瀏覽:101
手游如何交易安全 瀏覽:85
去南方人才市場需要准備什麼 瀏覽:931
南昌廉租房信息在哪裡查 瀏覽:275
吉林普洱茶葉如何代理 瀏覽:100
主機入侵檢測系統利用哪些信息 瀏覽:993
怎麼教孩子壘球技術 瀏覽:352
朝陽附近工商代理多少錢 瀏覽:555
所有程序菜單中標黃色是什麼意思 瀏覽:128
單行道逆行多少天信息 瀏覽:591
伽思珂護發素怎麼代理 瀏覽:761
三甲基鋁產品有什麼用 瀏覽:678
小程序風口在什麼地方 瀏覽:564