2015-06-18 147 views
0

的平均值。例如,我有(值A1 A2 A3 B1 B2 B3是數值)的數據集是這樣的:比較2列

A B 
a1 b1 
a2 b2 
a3 b3 

欲2類A和B的平均比較使用proc ttest。但似乎我必須更改我的數據集才能使用此proc。我讀了很多的教程關於PROC t檢驗和所有的人都使用的數據集以這種形式如下:

class value 
A  a1 
A  a2 
A  a3 
B  b1 
B  b2 
B  b3 

所以我的問題是:是否存在做PROC TTEST沒有改變我的數據集的方法?

謝謝你,對不起我的英文不好:d

回答

2

簡短的回答是否定的,你不能運行在一個SAS是TTEST比較多列。當用於2個樣本時,proc ttest依賴於class語句中的變量來比較組。只能輸入一個變量,並且它必須有2個等級,因此您的數據結構與此不兼容。

因此,您將需要更改數據佈局,儘管您可以在視圖中執行此操作,以便不創建新的物理數據集。這是一種方法。

/* create dummy data */ 
data have; 
input A B; 
datalines; 
10 11 
15 14 
20 21 
25 24 
; 
run; 

/* create a view that turns vars A and B into a single variable */ 
data have_trans/view=have_trans; 
set have; 
array vals{2} A B; 
length grouping $2; 
do i = 1 to 2; 
    grouping = vname(vals{i}); /* extracts the current variable name (A or B) */ 
    value = vals{i}; /* extracts the current value */ 
    output; 
end; 
drop A B i; /* drop unwanted variables */ 
run; 

/* perform ttest */ 
proc ttest data=have_trans; 
class grouping; 
var value; 
run;