
SPSS中Recode、Compute、Count、If命令
在進行統計分析時,經常需要對某些數據進行重新處理,如年齡、身高、收入等,了解他們的分布或進行分析。
2、Recode 命令:重新編碼數據,重新安排數據
3、Compute命令:對原始數據進行四則運算或指數運算等,派生出新的變量
4、Count命令:創建一個新變量來計算某些變量值所出現的次數
5、If命令:如果表達式成立,則創建一個新變量
一.Recode 命令對數據重新編碼
1.基本格式
Recode V1, V2…(原值1=新值1)…(原值m=新值n)
/X1,X2…(原值1=新值1)…(原值m=新值n).
幾個變量重新編碼,如果變量值不一樣,可以用反斜杠 / 隔開
Recode命令與變量、括號之間要有空格
在原值中使用的關鍵詞有:
lo(Lowest)
HI(highest)
Thru
Missing
Else
Sysmis
2.舉例
recode age (0 thru 20=1)(21 thru 40=2)(41 thru 60=3)(61 thru 100=4).
recode age (lo thru 20=1)( 21 thru 40=2)(41 thru 60=3)(61 thru hi=4).
recode V1 to V3(0=1)(1=0)(3=2).
recode v1,v2,v3(0=1)(1=0)(3=2).
用missing再編碼缺省值(如把原定為99歲的缺省值改為00歲,則:
recode age (missing=00).
Missing關鍵詞不能出現在右邊
Recode age (00=missing). 是錯誤的。
Recode value age (00). 是正確的
對系統缺省值sysmis進行重新編碼。系統缺省值是SPSS內部把無效的值自動打上“·”而剔除掉。
recode age (missing=sysmis).
沒有關鍵詞時的重新編碼
recode age (0,20=1)(21,40=2)(41,60=3)(61,100=4).
對字符串重新編碼有一些特別的要求
recode sex (’M’=’A’)( ’F’=’B’).
recode name(’wangsan’=’wan ’).
注意:新舊字符串的長度必須相等,不足的,要用空格補齊
要用單引號把內容引起來
recode 命令放在統計過程之前
特別應該引起注意的是:如果單純使用上述recode方法對變量進行重新編碼,則會改變原始的數據錄入格式,即改變原來的變量。如果需要重新編碼而又不希望改變原始的數據結構,在編程時應該與compute命令一起使用。上述問題在用對話框進行重新編碼時可以得到較好的解決。
第一種:對原始的數據進行重新編碼,改變原來變量的數據結構
File----Open ---Data-----*·sav-----OK----Transform-------Recode into same variable
點選age到Numeric Variable―――點擊Old and New Values――出現如下對話框
第二種:保持原始變量的數據結構,重新編碼的數據生成新的變量
Transform------- Recode into different variable
點選age到Numeric Variable-output框――在Name框打入agenew(新變量名)----點擊old and new values-----出現對話框如下
在new values中填上需要編碼的值-----add-----重復----continue----點選Change框――OK-----存盤
也可以在SPSS的Variable view中進行
二.用Compute命令創建新變量
1.命令格式
Compute 新變量=老變量1[+ — ×÷]老變量2.
Compute 新變量=函數.
對整個數據通過函數關系進行重新排列,常用的函數有:
ABS絕對值
ARSIN反正弦函數
ARTAN反正切函數
COS余弦函數
EXP以自然數e為底的指數函數
LG10
LN 自然對數 時間的差別很大,在做模型時,往往用LN時間,效果比較好(有漸近線),周期性很強的數考慮用SIN或COS; 數據差距很大但是沒有漸近線,可以考慮用平方根縮小差距.根據數據的特點和研究的目的選擇運算與函數
SQRT平方根 如年齡的平方根,可以縮小年齡之間的差距
TRUNC截取某自變數的整數部分
SIN
MOD 除于10以后的余數(模數)
RND 取自變數最接近的整數部分
Compute F=MOD(196).結果是6
Compute G=RND(-4.5).結果是-5
在進行函數運算時,如果出現下面的情況,被當作是系統缺省值處理
在冪運算中,指數不是整數;
被開方的數是負數
在EXP的指數運算中,自變數的結果太大
在LG10中,自變數為負數或0
在MOD10中,自變數為負數或0
自變數X為缺省值時,SPSS則認為是系統缺省值
日期運算函數中,自變數日期無效
任何自變數是系統缺省值時,則該個案是系統缺省值
日期函數YAMODA,可以把自變數表中所列的年月日變為天數,這種年月日順序與中國的年月日順序是一致的,計算天數是從1582年10月15日開始(格里歷的第一天)
compute day=YAMODA(1582,10,15).
結果是day=1(天)
compute age=[YAMODA(1945,4,21)-YAMODA(1999,10,1)]/365×25.
可以從兩個日期的間隔算出年齡是多少
三. COUNT命令
在限制性多項選擇中合成新的變量,生成0,1編碼的變量,如農民工在北京選擇住房因素列出了9項因素,詢問其第一選擇、第二選擇與第三選擇是什么。如果想把第一、二、三選擇都選擇了“上班方便”的人找出來,生成一個新的變量,則可以用count命令。
1.命令格式
Count 新變量名=老變量1(數值范圍) 老變量2(數值范圍) 老變量n(數值范圍).
#例 計算住房三個選擇都選擇了上班方便的人(原變量中的編碼是1)
則Count house = b8.1 (1) b8.2 (1) b8.3 (1) .
計算收入在300元以下的個案
count income1=income(lo thru 300).
計算收入在1000元以上的個案
count income2=income(1000 thru hi).
count M=age, income(sysmis).
Count M1=age, income(missing).
2.在對話框中運行Count
當要計算同時滿足兩個變量取值條件的記錄數量有多少時,直接用對話框會出現完全錯誤的結果,這里需要對對話框生成的程序加以修改,怎么修改?
注意:有的時候編程序可以完成對話框無法完成的工作。
如打開農民工調查數據,現在想把滿足下列條件的人找出來:第一選擇是選擇了“上班方便”,第二選擇選擇的是“位置好”,第三選擇選擇的是“房租低”并且要看每個人符合以上三個條件中的幾條。
先用對話框做一下,然后paste一下對話框會生成什么樣的程序,我們可以看到對話框生成的程序是:
COUNT
house = b8.1 b8.2 b8.3 (1) b8.1 b8.2 b8.3 (2) b8.1 b8.2 b8.3 (3) .
EXECUTE .
這個語句顯然不符合我們的要求,因為我們要求”1”只對第一選擇進行限制,而不對第二選擇和第三選擇進行限制。
所以,需要修改程序:COUNT
COUNT
house = b8.1 (1) b8.2 (2) b8.3 (3) .
EXECUTE .
四·用If命令做條件變換和邏輯校
1.命令格式
[1]IF命令格式1
IF(表達式成立) 新變量=新表達式
[2]IF命令格式2
IF(表達式成立) 新變量=數值
表達式中的關系符一般有6種
EQ(=) LE(<=) GT(>)
LT(<) GE(>=) NE(<>)
IF命令一定要用compute命令引導
[3]舉例
compute taxes=0.
If(income GE800) taxes=income×0.2.
月收入大于等于800,納稅20%
邏輯表達式中可以用AND (&); OR(I);NOT(~)三種。
IF (age GE18 AND sex NE 1) Group=1.
If (NOT Race=1 AND sex NE 0) Group=1.
當Race不等于1,同時 sex不等于0時,則歸入第一組
在IF命令中,如果有一個變量有缺省值,無法確定整個表達式的真假時,命令不執行,這個時候SPSS將依然保留新變量原有數值不變
原來有缺省值的,依然為缺省值。
五.對變量進行分組(Categorize Variables)
對變量進行分組指的是把連續型數值型資料轉變為具體的分類數據,進行轉換時是按照百分位數進行分組,這樣可以使每個組都有大概相等的觀察值。如把一個變量分為4個組,則第一組在25%百分位數下,第二組在25-50%,第三組在50-75%,第四組大于75%,組數可以自己決定
六.變量值秩次確定
Transform----Rank Cases----
Variable框:放你需要進行排序的變量,
By框:放用以確定分組排序的依據―――
Assign rank 1 to-----指用來制定秩次排列方式: Smallest value 表示最小值用1標注, Largest value表示最大值用1標注
Rank Type―――可以選擇的排序類型,主要有:
Rank:普通秩次,系統默認方式,
Savage score :以指數分布為基礎的原始分為秩次
Fractional rank:以分組例數之和占總例數的累積百分比為秩次
Fractional rank as% :以累積百分比分數為秩次
Sum of case weights:以分組例數的權重為秩次
Ntiles:先給定一個大于1的整數,系統按照這個數值開始確定排序的秩次
Proportion estimated:比例估計,是以一個特別秩次對應分布的累積比的估計
Normal score:正態分數
Ties:當選擇的變量具有相同值時,秩次的確定原則:
Mean:給點秩取平均值,此為系統默認方式
Low:給點秩取最小值
High:給點秩取最大值
Sequential ranks to unique values:給點秩取第一個出現的秩次值,其它觀察量秩次順序排列
七.自動對變量重新賦值 Automatic Recode
Automatic Recode對話框:把要重新賦值的變量放到Variable框,在New name 框內對新變量進行變量名的確定, 賦值方式:從lowest value開始, 從largest value開始。生成的新變量實際上是對老變量根據從大到小或從小到大的原則對其進行了賦值。如某個值在老變量中排第五,則在重新賦值時賦予5這個值。
八.缺失值的替代 Replace Missing Values
當變量有缺失值時,可以進行科學替代, 點擊Transform 菜單中的 Replace Missing Values對話框,把有缺失值的變量放到New variables對話框中, 系統會自動產生用于替代缺失值的新變量名,默認變量名為原來變量名后加-1,我們也可以在Name框內自己定義替代缺失值的新變量名,然后點擊 Method 箭頭,選擇缺失值的替代方式,共有5種方式
1. Series mean: 用這個變量的所有非缺失值的均數作替代
2. Mean of nearby points:用缺失值相鄰點的非缺失值的均數做替代,取多少個相鄰點可以由Span of near by points選擇項來確定
3. Median of nearby points:用缺失值相鄰點的非缺失值的中位數做替代,取多少個相鄰點可以Span of near by points選擇項來確定
4. Linear interpolation:用缺失值相鄰兩點非缺失值做線性內插法替代
5. Linear tread at point:用擬合的直線方程估計缺失值。
想快速入門Python數據分析?這門課程適合你!
如果你對Python數據分析感興趣,但不知從何入手,推薦你學習《山有木兮:Python數據分析極簡入門》。這門課程專為初學者設計,內容簡潔易懂,手把手教你掌握Python數據分析的核心技能,助你輕松邁出數據分析的第一步。
學習入口:https://edu.cda.cn/goods/show/3429?targetId=5724&preview=0
開啟你的Python數據分析之旅,從入門到精通,只需一步!
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25