2015-07-19 92 views
0

我的R用戶,我試圖重寫R.一些二手SPSS代碼可能有人給我的基本想法是什麼這個代碼是實現?:問題有關聚合功能

AGGREG OUTFILE=* 
/BREAK = subj task cond 
/lat wind inwind primehit primefa = 
mean(lat wind inwind primehit primefa) 
/Ntrials = n. 

一些背景信息是subj,task,cond,lat,wind,inwind,primhitprimefa都是我正在使用的數據集中的變量。

+0

對於和出色的教程在此,請參見[SPSS AGGREGATE命令](http://www.spss-tutorials.com/spss-aggregate-command/)。 – RubenGeert

回答

2

下面是它會是什麼樣子在R:

#subj, task, cond, lat, wind, inwind, primhit, primefa 
#Creating some fake data for you to aggregate by 
df<-data.frame(subj=c(rep(1,10),rep(2,10),rep(3,10)), 
      task=rep(c(rep("A",5),rep("B",5)),3), 
      cond=rep(rep(c(rep(T,3),rep(F,2)),2),3), 
      lat=rnorm(30,100,20),wind=rnorm(30,10,10),inwind=rnorm(30,5,1), 
      primhit=rnorm(30,5000,75),primefa=rnorm(30,200,30)) 
aggregate(df[,-c(1:3)],by=list(df$subj,df$task,df$cond),FUN="mean") 

的(截)輸出應該與此類似(會有所不同,因爲RNORM):

Group.1 Group.2 Group.3  lat  wind inwind primhit primefa 
1  1  A FALSE 102.96070 5.637264 5.213994 5043.498 213.3119 
2  2  A FALSE 114.91123 11.161194 5.004008 5055.676 221.1172 
.... 
11  2  B TRUE 97.04035 6.450370 4.755714 5113.725 196.4184 
12  3  B TRUE 114.92453 12.888350 4.667839 5022.614 199.3125 

從本質上講,SPSS代碼是做在/ BREAK是BY列表和你的第三個行正在重新定義變量取均值爲給定的主題,任務和條件同樣的事情。該/ Ntrials是給了由給定組病例數。你可以這樣做aggregate(df[,1)],by=list(df$subj,df$task,df$cond),FUN="length")

如果你需要查找東西爲SPSS,我建議ats.ucla.edu(http://www.ats.ucla.edu/stat/spss/seminars/spss_syntax08/default08_part2.htm)。他們有一些最全面的教程在那裏的。