2017-10-04 39 views
0
proc sort data = group; 
    by studystyle; 
run; 
proc means data= group mean; 
    var test1 test2; 
    by studystyle; 
    output out = groupmeans mean = groupmeans; 
run; 

的平均2個SAS數據集,所以我必須包含學生證,test1的分數,分數test2的學生羣體,他們的學習風格的此數據集。如何創建一個包含前一個

然後,我創建了一個新的數據集,這些測試得分的分值由研究風格排序。

我想創建2個基於2個測試的新數據集,這兩個數據集應該包括研究風格,均值和測試#。

我想我可以開始創建一個新的數據集使用set命令來使用以前的數據集。然而,我並不知道如何爲每種學習方式提供測試手段。相反,我只是使用數據手動將平均值放入,但我更願意從前一個數據集本身獲取這些值。

data newgroup1; 
set groupmeans; 
drop test1 test2 _type_ _freq_ _stat_; 
input StudyStyle AVG Testnum; 
datalines; 
1 51.6875 1 
2 49.27273 1 
3 49.09091 1 
; 
run; 

data newgroup2; 
set groupmeans; 
drop test2 test1 _type_ _freq_ _stat_; 
input StudyStyle AVG Testnum; 
datalines; 
1 51.5 2 
2 65.2727 2 
3 90.5454 2 
; 
run; 

data newgroup; 
set newgroup1 newgroup2; 
run; 
+0

https://github.com/statgeek/SAS-Tutorials/blob/master/add_average_value_to_dataset – Reeza

+1

@Reeza ......是你的github上?您應該使用擴展名保存SAS腳本:**。sas **以獲得顏色鮮豔的sas代碼格式:[示例](https://github.com/ParfaitG/RANDOM_DATA/blob/master/RandomData.sas)。 – Parfait

+0

@mohb ...請顯示數據示例以闡明您的需求。 – Parfait

回答

0

如果我正確理解你的問題,你需要改變的是單獨創建TEST1和TEST2的手段,然後寫兩個數據集。嘗試下面的代碼。

proc sort data = group; 
by studystyle; 
run; 

proc means data= group mean; 
var test1 test2; 
by studystyle; 
output out = groupmeans mean(test1) = mtest1 mean(test2) = mtest2; 
run; 

data newgroup1 (keep=studystyle mtest1) newgroup2(keep=studystyle mtest2) ; 
set groupmeans; 
run;