2015-07-19 73 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)。他们有一些最全面的教程在那里的。